From ab372c543ed9783336fe2bc25a83f47991d1a055 Mon Sep 17 00:00:00 2001 From: yidongmiao Date: Fri, 7 Apr 2017 17:01:42 +0800 Subject: BT: Update to support WebSocket modified: app/bluetooth/Bluetooth.qml modified: binding-bluetooth/binding-bluetooth.pro new file: binding-bluetooth/bluetooth-agent.c new file: binding-bluetooth/bluetooth-agent.h modified: binding-bluetooth/bluetooth-api.c modified: binding-bluetooth/bluetooth-api.h modified: binding-bluetooth/bluetooth-manager.c modified: binding-bluetooth/bluetooth-manager.h new file: binding-bluetooth/bluez-client.c new file: binding-bluetooth/bluez-client.h new file: binding-bluetooth/lib_agent.c new file: binding-bluetooth/lib_agent.h new file: binding-bluetooth/lib_bluez.c new file: binding-bluetooth/lib_bluez.h new file: binding-bluetooth/lib_ofono.c new file: binding-bluetooth/lib_ofono.h new file: binding-bluetooth/lib_ofono_modem.c new file: binding-bluetooth/lib_ofono_modem.h new file: binding-bluetooth/ofono-client.c new file: binding-bluetooth/ofono-client.h modified: Bluetooth.qml Change-Id: I18bc7ed86b6759d5b55a2662cf3ebd0d1e81b07f Signed-off-by: yidongmiao Jira identifier: SPEC-528 --- lib_ofono_modem.c | 11664 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 11664 insertions(+) create mode 100644 lib_ofono_modem.c (limited to 'lib_ofono_modem.c') diff --git a/lib_ofono_modem.c b/lib_ofono_modem.c new file mode 100644 index 0000000..e30eaa0 --- /dev/null +++ b/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 +#ifdef G_OS_UNIX +# include +#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 org.freedesktop.DBus.Introspectable 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 org.freedesktop.DBus.Introspectable 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 org.freedesktop.DBus.Introspectable. + */ + +/** + * OFONOMODEMOrgFreedesktopDBusIntrospectableIface: + * @parent_iface: The parent interface. + * @handle_introspect: Handler for the #OFONOMODEMOrgFreedesktopDBusIntrospectable::handle-introspect signal. + * + * Virtual table for the D-Bus interface org.freedesktop.DBus.Introspectable. + */ + +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 Introspect() 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 Introspect() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 parameter or %NULL to ignore. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Introspect() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_modem_org_freedesktop_dbus_introspectable_call_introspect() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_sync ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, + gchar **out_xml, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Introspect", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + 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_complete_introspect: + * @object: A #OFONOMODEMOrgFreedesktopDBusIntrospectable. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @xml: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the Introspect() 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_freedesktop_dbus_introspectable_complete_introspect ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation, + const gchar *xml) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", + xml)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOMODEMOrgFreedesktopDBusIntrospectableProxy: + * + * The #OFONOMODEMOrgFreedesktopDBusIntrospectableProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOMODEMOrgFreedesktopDBusIntrospectableProxy. + */ + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate +{ + GData *qdata; +}; + +static void ofono_modem_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOMODEMOrgFreedesktopDBusIntrospectableIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy, ofono_modem_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy) + G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_modem_org_freedesktop_dbus_introspectable_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy, ofono_modem_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_modem_org_freedesktop_dbus_introspectable_proxy_iface_init)); + +#endif +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_finalize (GObject *object) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (ofono_modem_org_freedesktop_dbus_introspectable_proxy_parent_class)->finalize (object); +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_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 (¶mv[0], OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE); + g_signal_emitv (paramv, signal_id, 0, NULL); + for (n = 0; n < num_params + 1; n++) + g_value_unset (¶mv[n]); + g_free (paramv); +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_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_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_proxy_init (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_modem_org_freedesktop_dbus_introspectable_interface_info ()); +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_class_init (OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_modem_org_freedesktop_dbus_introspectable_proxy_finalize; + gobject_class->get_property = ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_property; + gobject_class->set_property = ofono_modem_org_freedesktop_dbus_introspectable_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = ofono_modem_org_freedesktop_dbus_introspectable_proxy_g_signal; + proxy_class->g_properties_changed = ofono_modem_org_freedesktop_dbus_introspectable_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate)); +#endif +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOMODEMOrgFreedesktopDBusIntrospectableIface *iface) +{ +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_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 org.freedesktop.DBus.Introspectable. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_finish() to get the result of the operation. + * + * See ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE_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.freedesktop.DBus.Introspectable", NULL); +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_freedesktop_dbus_introspectable_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_modem_org_freedesktop_dbus_introspectable_proxy_new(). + * + * Returns: (transfer full) (type OFONOMODEMOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOMODEMOrgFreedesktopDBusIntrospectable * +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_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 org.freedesktop.DBus.Introspectable. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_modem_org_freedesktop_dbus_introspectable_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOMODEMOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOMODEMOrgFreedesktopDBusIntrospectable * +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus.Introspectable", NULL); + if (ret != NULL) + return OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from. + * You can then call ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish() to get the result of the operation. + * + * See ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE_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.freedesktop.DBus.Introspectable", NULL); +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). + * + * Returns: (transfer full) (type OFONOMODEMOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOMODEMOrgFreedesktopDBusIntrospectable * +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOMODEMOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOMODEMOrgFreedesktopDBusIntrospectable * +ofono_modem_org_freedesktop_dbus_introspectable_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_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus.Introspectable", NULL); + if (ret != NULL) + return OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton: + * + * The #OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton. + */ + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_ofono_modem_org_freedesktop_dbus_introspectable_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) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_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 (¶mv[n], OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[n++]); + g_variant_unref (child); + } + signal_id = g_signal_lookup (info->signal_name, OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE); + 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 (¶mv[n]); + g_free (paramv); +} + +static GVariant * +_ofono_modem_org_freedesktop_dbus_introspectable_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) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_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_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_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) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_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_freedesktop_dbus_introspectable_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_freedesktop_dbus_introspectable_skeleton_vtable = +{ + _ofono_modem_org_freedesktop_dbus_introspectable_skeleton_handle_method_call, + _ofono_modem_org_freedesktop_dbus_introspectable_skeleton_handle_get_property, + _ofono_modem_org_freedesktop_dbus_introspectable_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return ofono_modem_org_freedesktop_dbus_introspectable_interface_info (); +} + +static GDBusInterfaceVTable * +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_ofono_modem_org_freedesktop_dbus_introspectable_skeleton_vtable; +} + +static GVariant * +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_ofono_modem_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _ofono_modem_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _ofono_modem_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _ofono_modem_org_freedesktop_dbus_introspectable_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.freedesktop.DBus.Introspectable", 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_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void ofono_modem_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOMODEMOrgFreedesktopDBusIntrospectableIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton, ofono_modem_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton) + G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_modem_org_freedesktop_dbus_introspectable_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton, ofono_modem_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_modem_org_freedesktop_dbus_introspectable_skeleton_iface_init)); + +#endif +static void +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_finalize (GObject *object) +{ + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_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_freedesktop_dbus_introspectable_skeleton_parent_class)->finalize (object); +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_init (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_class_init (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties; + skeleton_class->flush = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = ofono_modem_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate)); +#endif +} + +static void +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOMODEMOrgFreedesktopDBusIntrospectableIface *iface) +{ +} + +/** + * ofono_modem_org_freedesktop_dbus_introspectable_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.freedesktop.DBus.Introspectable. + * + * Returns: (transfer full) (type OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton): The skeleton object. + */ +OFONOMODEMOrgFreedesktopDBusIntrospectable * +ofono_modem_org_freedesktop_dbus_introspectable_skeleton_new (void) +{ + return OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (g_object_new (OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.ofono.Modem + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOMODEMOrgOfonoModem + * @title: OFONOMODEMOrgOfonoModem + * @short_description: Generated C code for the org.ofono.Modem D-Bus interface + * + * This section contains code for working with the org.ofono.Modem D-Bus interface in C. + */ + +/* ---- Introspection data for org.ofono.Modem ---- */ + +static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_modem_method_info_get_properties_OUT_ARG_properties = +{ + { + -1, + (gchar *) "properties", + (gchar *) "a{sv}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_modem_method_info_get_properties_OUT_ARG_pointers[] = +{ + &_ofono_modem_org_ofono_modem_method_info_get_properties_OUT_ARG_properties, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_modem_method_info_get_properties = +{ + { + -1, + (gchar *) "GetProperties", + NULL, + (GDBusArgInfo **) &_ofono_modem_org_ofono_modem_method_info_get_properties_OUT_ARG_pointers, + NULL + }, + "handle-get-properties", + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_property = +{ + { + -1, + (gchar *) "property", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_value = +{ + { + -1, + (gchar *) "value", + (gchar *) "v", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_pointers[] = +{ + &_ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_property, + &_ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_value, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_modem_org_ofono_modem_method_info_set_property = +{ + { + -1, + (gchar *) "SetProperty", + (GDBusArgInfo **) &_ofono_modem_org_ofono_modem_method_info_set_property_IN_ARG_pointers, + NULL, + NULL + }, + "handle-set-property", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _ofono_modem_org_ofono_modem_method_info_pointers[] = +{ + &_ofono_modem_org_ofono_modem_method_info_get_properties, + &_ofono_modem_org_ofono_modem_method_info_set_property, + NULL +}; + +static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_modem_signal_info_property_changed_ARG_name = +{ + { + -1, + (gchar *) "name", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_modem_org_ofono_modem_signal_info_property_changed_ARG_value = +{ + { + -1, + (gchar *) "value", + (gchar *) "v", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_modem_org_ofono_modem_signal_info_property_changed_ARG_pointers[] = +{ + &_ofono_modem_org_ofono_modem_signal_info_property_changed_ARG_name, + &_ofono_modem_org_ofono_modem_signal_info_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 org.ofono.Modem 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 org.ofono.Modem. + */ + +/** + * 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 org.ofono.Modem. + */ + +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 GetProperties() 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 SetProperty() 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 "PropertyChanged" 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 "PropertyChanged" 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 GetProperties() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetProperties() 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 SetProperty() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 SetProperty() 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 GetProperties() 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 SetProperty() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_MODEM); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.Modem. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.Modem. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_MODEM); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.Modem. + * + * 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 org.ofono.NetworkTime 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 org.ofono.NetworkTime 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 org.ofono.NetworkTime. + */ + +/** + * 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 org.ofono.NetworkTime. + */ + +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 GetNetworkTime() 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 "NetworkTimeChanged" 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 "NetworkTimeChanged" 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 GetNetworkTime() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetNetworkTime() 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 GetNetworkTime() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.NetworkTime. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.NetworkTime. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.NetworkTime. + * + * 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 org.ofono.NetworkRegistration 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 org.ofono.NetworkRegistration 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 org.ofono.NetworkRegistration. + */ + +/** + * 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 org.ofono.NetworkRegistration. + */ + +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 GetProperties() 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 Register() 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 GetOperators() 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 Scan() 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 "PropertyChanged" 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 "PropertyChanged" 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 GetProperties() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetProperties() 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 Register() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 Register() 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 GetOperators() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetOperators() 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 Scan() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 Scan() 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 GetProperties() 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 Register() 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 GetOperators() 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 Scan() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.NetworkRegistration. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.NetworkRegistration. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.NetworkRegistration. + * + * 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 org.ofono.Handsfree 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 org.ofono.Handsfree 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 org.ofono.Handsfree. + */ + +/** + * 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 org.ofono.Handsfree. + */ + +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 GetProperties() 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 SetProperty() 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 RequestPhoneNumber() 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 "PropertyChanged" 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 "PropertyChanged" 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 GetProperties() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetProperties() 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 SetProperty() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 SetProperty() 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 RequestPhoneNumber() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 RequestPhoneNumber() 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 GetProperties() 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 SetProperty() 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 RequestPhoneNumber() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.Handsfree. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.Handsfree. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.Handsfree. + * + * 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 org.ofono.CallVolume 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 org.ofono.CallVolume 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 org.ofono.CallVolume. + */ + +/** + * 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 org.ofono.CallVolume. + */ + +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 GetProperties() 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 SetProperty() 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 "PropertyChanged" 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 "PropertyChanged" 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 GetProperties() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetProperties() 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 SetProperty() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 SetProperty() 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 GetProperties() 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 SetProperty() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.CallVolume. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.CallVolume. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.CallVolume. + * + * 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 org.ofono.VoiceCallManager 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 org.ofono.VoiceCallManager 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 org.ofono.VoiceCallManager. + */ + +/** + * 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 org.ofono.VoiceCallManager. + */ + +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 GetProperties() 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 Dial() 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 Transfer() 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 SwapCalls() 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 ReleaseAndAnswer() 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 ReleaseAndSwap() 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 HoldAndAnswer() 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 HangupAll() 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 PrivateChat() 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 CreateMultiparty() 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 HangupMultiparty() 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 SendTones() 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 GetCalls() 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 "Forwarded" 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 "BarringActive" 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 "PropertyChanged" 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 "CallAdded" 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 "CallRemoved" 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 "Forwarded" 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 "BarringActive" 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 "PropertyChanged" 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 "CallAdded" 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 "CallRemoved" 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 GetProperties() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetProperties() 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 Dial() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 Dial() 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 Transfer() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 Transfer() 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 SwapCalls() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 SwapCalls() 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 ReleaseAndAnswer() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 ReleaseAndAnswer() 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 ReleaseAndSwap() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 ReleaseAndSwap() 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 HoldAndAnswer() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 HoldAndAnswer() 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 HangupAll() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 HangupAll() 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 PrivateChat() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 PrivateChat() 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 CreateMultiparty() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 CreateMultiparty() 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 HangupMultiparty() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 HangupMultiparty() 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 SendTones() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 SendTones() 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 GetCalls() D-Bus method on @proxy. + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 GetCalls() 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 GetProperties() 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 Dial() 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 Transfer() 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 SwapCalls() 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 ReleaseAndAnswer() 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 ReleaseAndSwap() 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 HoldAndAnswer() 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 HangupAll() 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 PrivateChat() 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 CreateMultiparty() 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 HangupMultiparty() 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 SendTones() 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 GetCalls() 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 (¶mv[0], OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.VoiceCallManager. See g_dbus_proxy_new() for more details. + * + * When the operation is finished, @callback will be invoked in the thread-default main loop 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 org.ofono.VoiceCallManager. 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 thread-default main loop 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 (¶mv[n], OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER); + g_value_set_object (¶mv[n++], skeleton); + g_value_init (¶mv[n], G_TYPE_DBUS_METHOD_INVOCATION); + g_value_set_object (¶mv[n++], invocation); + if (info->pass_fdlist) + { +#ifdef G_OS_UNIX + g_value_init (¶mv[n], G_TYPE_UNIX_FD_LIST); + g_value_set_object (¶mv[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 (¶mv[n], G_TYPE_VARIANT); + g_value_set_variant (¶mv[n], child); + n++; + } + else + g_dbus_gvariant_to_gvalue (child, ¶mv[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 (¶mv[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 org.ofono.VoiceCallManager. + * + * 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 org.freedesktop.DBus.Introspectable, 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 org.ofono.Modem, 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 org.ofono.NetworkTime, 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 org.ofono.NetworkRegistration, 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 org.ofono.Handsfree, 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 org.ofono.CallVolume, 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 org.ofono.VoiceCallManager, 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 org.freedesktop.DBus.Introspectable 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 org.ofono.Modem 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 org.ofono.NetworkTime 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 org.ofono.NetworkRegistration 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 org.ofono.Handsfree 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 org.ofono.CallVolume 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 org.ofono.VoiceCallManager 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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. + * + * 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 org.freedesktop.DBus.Introspectable 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 org.ofono.Modem 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 org.ofono.NetworkTime 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 org.ofono.NetworkRegistration 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 org.ofono.Handsfree 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 org.ofono.CallVolume 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 org.ofono.VoiceCallManager 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 thread-default main loop 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 thread-default main loop 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; +} + + -- cgit 1.2.3-korg