From c6c94220fa7a1311cb60a01d4f009fb559d3b720 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Thu, 29 Jun 2017 20:15:36 -0700 Subject: binding: bluetooth: make system wide service Allow Bluetooth binding to be build separately and installed as a system wide service Bug-AGL: SPEC-661 SPEC-715 Change-Id: I12feefa2908243aa3bdcb0341f9bc9654c23741e Signed-off-by: Matt Ranostay --- LICENSE | 54 + agl-service-bluetooth.pro | 3 + binding-bluetooth.pro | 11 - binding-bluetooth/binding-bluetooth.pro | 11 + binding-bluetooth/binding.pri | 6 + binding-bluetooth/bluetooth-agent.c | 736 ++ binding-bluetooth/bluetooth-agent.h | 67 + binding-bluetooth/bluetooth-api.c | 965 +++ binding-bluetooth/bluetooth-api.h | 60 + binding-bluetooth/bluetooth-manager.c | 1811 +++++ binding-bluetooth/bluetooth-manager.h | 201 + binding-bluetooth/bluez-client.c | 966 +++ binding-bluetooth/bluez-client.h | 76 + binding-bluetooth/export.map | 1 + binding-bluetooth/lib_agent.c | 2504 +++++++ binding-bluetooth/lib_agent.h | 409 ++ binding-bluetooth/lib_bluez.c | 630 ++ binding-bluetooth/lib_bluez.h | 170 + binding-bluetooth/lib_ofono.c | 5615 ++++++++++++++ binding-bluetooth/lib_ofono.h | 981 +++ binding-bluetooth/lib_ofono_modem.c | 11664 ++++++++++++++++++++++++++++++ binding-bluetooth/lib_ofono_modem.h | 1941 +++++ binding-bluetooth/ofono-client.c | 672 ++ binding-bluetooth/ofono-client.h | 74 + binding.pri | 6 - bluetooth-agent.c | 736 -- bluetooth-agent.h | 67 - bluetooth-api.c | 965 --- bluetooth-api.h | 60 - bluetooth-manager.c | 1811 ----- bluetooth-manager.h | 201 - bluez-client.c | 966 --- bluez-client.h | 76 - export.map | 1 - lib_agent.c | 2504 ------- lib_agent.h | 409 -- lib_bluez.c | 630 -- lib_bluez.h | 170 - lib_ofono.c | 5615 -------------- lib_ofono.h | 981 --- lib_ofono_modem.c | 11664 ------------------------------ lib_ofono_modem.h | 1941 ----- ofono-client.c | 672 -- ofono-client.h | 74 - package/config.xml | 15 + package/icon.svg | 283 + package/package.pro | 21 + 47 files changed, 29936 insertions(+), 29560 deletions(-) create mode 100644 LICENSE create mode 100644 agl-service-bluetooth.pro delete mode 100644 binding-bluetooth.pro create mode 100644 binding-bluetooth/binding-bluetooth.pro create mode 100644 binding-bluetooth/binding.pri create mode 100644 binding-bluetooth/bluetooth-agent.c create mode 100644 binding-bluetooth/bluetooth-agent.h create mode 100644 binding-bluetooth/bluetooth-api.c create mode 100644 binding-bluetooth/bluetooth-api.h create mode 100644 binding-bluetooth/bluetooth-manager.c create mode 100644 binding-bluetooth/bluetooth-manager.h create mode 100644 binding-bluetooth/bluez-client.c create mode 100644 binding-bluetooth/bluez-client.h create mode 100644 binding-bluetooth/export.map create mode 100644 binding-bluetooth/lib_agent.c create mode 100644 binding-bluetooth/lib_agent.h create mode 100644 binding-bluetooth/lib_bluez.c create mode 100644 binding-bluetooth/lib_bluez.h create mode 100644 binding-bluetooth/lib_ofono.c create mode 100644 binding-bluetooth/lib_ofono.h create mode 100644 binding-bluetooth/lib_ofono_modem.c create mode 100644 binding-bluetooth/lib_ofono_modem.h create mode 100644 binding-bluetooth/ofono-client.c create mode 100644 binding-bluetooth/ofono-client.h delete mode 100644 binding.pri delete mode 100644 bluetooth-agent.c delete mode 100644 bluetooth-agent.h delete mode 100644 bluetooth-api.c delete mode 100644 bluetooth-api.h delete mode 100644 bluetooth-manager.c delete mode 100644 bluetooth-manager.h delete mode 100644 bluez-client.c delete mode 100644 bluez-client.h delete mode 100644 export.map delete mode 100644 lib_agent.c delete mode 100644 lib_agent.h delete mode 100644 lib_bluez.c delete mode 100644 lib_bluez.h delete mode 100644 lib_ofono.c delete mode 100644 lib_ofono.h delete mode 100644 lib_ofono_modem.c delete mode 100644 lib_ofono_modem.h delete mode 100644 ofono-client.c delete mode 100644 ofono-client.h create mode 100644 package/config.xml create mode 100644 package/icon.svg create mode 100644 package/package.pro diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..31c692a --- /dev/null +++ b/LICENSE @@ -0,0 +1,54 @@ +Apache License + +Version 2.0, January 2004 + +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + You must give any other recipients of the Work or Derivative Works a copy of this License; and + You must cause any modified files to carry prominent notices stating that You changed the files; and + You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/agl-service-bluetooth.pro b/agl-service-bluetooth.pro new file mode 100644 index 0000000..5f02cd8 --- /dev/null +++ b/agl-service-bluetooth.pro @@ -0,0 +1,3 @@ +TEMPLATE = subdirs +SUBDIRS = binding-bluetooth package +package.depends += binding-bluetooth diff --git a/binding-bluetooth.pro b/binding-bluetooth.pro deleted file mode 100644 index 600695a..0000000 --- a/binding-bluetooth.pro +++ /dev/null @@ -1,11 +0,0 @@ -TARGET = settings-bluetooth-binding - -HEADERS = bluetooth-api.h bluetooth-manager.h bluetooth-agent.h lib_agent.h ofono-client.h lib_ofono.h lib_ofono_modem.h bluez-client.h lib_bluez.h -SOURCES = bluetooth-api.c bluetooth-manager.c bluetooth-agent.c lib_agent.c ofono-client.c lib_ofono.c lib_ofono_modem.c bluez-client.c lib_bluez.c - -LIBS += -Wl,--version-script=$$PWD/export.map - -CONFIG += link_pkgconfig -PKGCONFIG += json-c afb-daemon glib-2.0 gio-2.0 gobject-2.0 gio-unix-2.0 zlib - -include(binding.pri) diff --git a/binding-bluetooth/binding-bluetooth.pro b/binding-bluetooth/binding-bluetooth.pro new file mode 100644 index 0000000..083efb8 --- /dev/null +++ b/binding-bluetooth/binding-bluetooth.pro @@ -0,0 +1,11 @@ +TARGET = agl-bluetooth-binding + +HEADERS = bluetooth-api.h bluetooth-manager.h bluetooth-agent.h lib_agent.h ofono-client.h lib_ofono.h lib_ofono_modem.h bluez-client.h lib_bluez.h +SOURCES = bluetooth-api.c bluetooth-manager.c bluetooth-agent.c lib_agent.c ofono-client.c lib_ofono.c lib_ofono_modem.c bluez-client.c lib_bluez.c + +LIBS += -Wl,--version-script=$$PWD/export.map + +CONFIG += link_pkgconfig +PKGCONFIG += json-c afb-daemon glib-2.0 gio-2.0 gobject-2.0 gio-unix-2.0 zlib + +include(binding.pri) diff --git a/binding-bluetooth/binding.pri b/binding-bluetooth/binding.pri new file mode 100644 index 0000000..3448a56 --- /dev/null +++ b/binding-bluetooth/binding.pri @@ -0,0 +1,6 @@ +TEMPLATE = lib +CONFIG += plugin use_c_linker +CONFIG -= qt +QMAKE_CFLAGS += -Wextra -Wconversion -Wno-unused-parameter -Werror=maybe-uninitialized -Werror=implicit-function-declaration -ffunction-sections -fdata-sections -Wl,--as-needed -Wl,--gc-sections + +DESTDIR = $${OUT_PWD}/../package/root/lib diff --git a/binding-bluetooth/bluetooth-agent.c b/binding-bluetooth/bluetooth-agent.c new file mode 100644 index 0000000..7193ce5 --- /dev/null +++ b/binding-bluetooth/bluetooth-agent.c @@ -0,0 +1,736 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include +#include +#include + +#include "bluetooth-agent.h" + +#ifdef AGENT_THREAD + +#include + +static GMainLoop *agentLoop = NULL; +#endif + +static GDBusConnection *system_conn = NULL; +static gboolean agent_registered = FALSE; +static const char *agent_capability = NULL; +static Agent_RegisterCallback_t agent_RegisterCallback = { 0 }; +static AGENTOrgBluezAgent1 * agnet_interface = NULL; + +static struct Agent_Node *agent_event = NULL; + + +static void agent_event_auto_release(struct Agent_Node *event) +{ + if (NULL == event ){ + return; + } + g_dbus_method_invocation_return_dbus_error (event->invocation, + ERROR_BLUEZ_REJECT, ""); + g_free(event); +} + +/* + * Store the agent event + */ +static void agent_event_new(AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, int type) +{ + LOGD("\n"); + if(NULL !=agent_event ) + { + agent_event_auto_release(agent_event); + } + agent_event = g_malloc0(sizeof(struct Agent_Node)); + agent_event->type = type; + agent_event->object = object; + agent_event->invocation = invocation; + +} + + +/* + * agent api + * + * Methods : void Release() + * This method gets called when the service daemon + * unregisters the agent. An agent can use it to do + * cleanup tasks. There is no need to unregister the + * agent, because when this method gets called it has + * already been unregistered. + */ +static gboolean +on_handle_Release (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + LOGD("\n"); + + //gboolean ret = FALSE; + + if (NULL != agent_RegisterCallback.agent_Release) + { + agent_RegisterCallback.agent_Release(); + } + + agent_org_bluez_agent1_complete_release(object, invocation); + + g_dbus_interface_skeleton_unexport( + G_DBUS_INTERFACE_SKELETON(agnet_interface)); + + g_object_unref(agnet_interface); + agent_registered = FALSE; + +#ifdef AGENT_THREAD + if(agentLoop){ + g_main_loop_quit(agentLoop); + } +#endif + + return TRUE; +} + +/* + * agent api + * Methods : string RequestPinCode(object device) + * + * This method gets called when the service daemon + * needs to get the passkey for an authentication. + * + * The return value should be a string of 1-16 characters + * length. The string can be alphanumeric. + */ +static gboolean +on_handle_RequestPinCode (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + gpointer user_data) +{ + + LOGD("device:%s.\n",device); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + gchar *response; + + if (NULL != agent_RegisterCallback.agent_RequestPinCode) + { + ret = agent_RegisterCallback.agent_RequestPinCode (device, + &response, &error); + } + + if (TRUE == ret) + { + agent_org_bluez_agent1_complete_request_pin_code(object, + invocation, response); + g_free(response); + + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; +} + +/* + * agent api + * Methods : void DisplayPinCode(object device, string pincode) + * + * This method gets called when the service daemon + * needs to display a pincode for an authentication. + */ +static gboolean +on_handle_DisplayPinCode (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + const gchar *pincode, + gpointer user_data) +{ + + LOGD("device:%s,pincode:%s.\n",device, pincode); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + + if (NULL != agent_RegisterCallback.agent_DisplayPinCode) + { + ret = agent_RegisterCallback.agent_DisplayPinCode(device, + pincode, &error); + } + + if (TRUE == ret) + { + agent_org_bluez_agent1_complete_display_pin_code(object, invocation); + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; +} + + +/* + * agent api + * Methods : uint32 RequestPasskey(object device) + * + * This method gets called when the service daemon + * needs to get the passkey for an authentication. + * + * The return value should be a numeric value + * between 0-999999. + */ +static gboolean +on_handle_RequestPasskey (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + gpointer user_data) +{ + + LOGD("device:%s.\n",device); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + guint passkey; + + if (NULL != agent_RegisterCallback.agent_RequestPasskey) + { + ret = agent_RegisterCallback.agent_RequestPasskey(device, + &passkey, &error); + } + + if (TRUE == ret) + { + agent_org_bluez_agent1_complete_request_passkey(object, + invocation, passkey); + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; + +} + + +/* + * agent api + * Methods : void DisplayPasskey(object device, uint32 passkey, uint16 entered) + * + * This method gets called when the service daemon + * needs to display a passkey for an authentication. + * + * The entered parameter indicates the number of already + * typed keys on the remote side. + */ +static gboolean +on_handle_DisplayPasskey (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + guint passkey, + guint16 entered, + gpointer user_data) +{ + + LOGD("device:%s,passkey:%d,entered:%d.\n",device, passkey, entered); + + //gboolean ret = FALSE; + + if (NULL != agent_RegisterCallback.agent_DisplayPasskey) + { + agent_RegisterCallback.agent_DisplayPasskey(device, passkey, entered); + } + + agent_org_bluez_agent1_complete_display_passkey(object, invocation); + + + return TRUE; + +} + +/* + * agent api + * Methods : void RequestConfirmation(object device, uint32 passkey) + * + * This method gets called when the service daemon + * needs to confirm a passkey for an authentication. + * + * To confirm the value it should return an empty reply + * or an error in case the passkey is invalid. + */ +static gboolean +on_handle_RequestConfirmation (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + guint passkey, + gpointer user_data) +{ + LOGD("device:%s,passkey:%d.\n", device, passkey); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + + if (NULL != agent_RegisterCallback.agent_RequestConfirmation) + { + ret = agent_RegisterCallback.agent_RequestConfirmation(device, + passkey, &error); + } + LOGD("ret %d\n",ret); + if (TRUE == ret) + { + agent_event_new(object, invocation,REQUEST_CONFIRMATION); + //agent_org_bluez_agent1_complete_request_confirmation(object, + // invocation); + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; +} + +/* + * agent api + * Methods : void RequestAuthorization(object device) + * + * This method gets called to request the user to + * authorize an incoming pairing attempt which + * would in other circumstances trigger the just-works + * model. + */ +static gboolean +on_handle_RequestAuthorization (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + gpointer user_data) +{ + LOGD("device:%s.\n",device); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + + if (NULL != agent_RegisterCallback.agent_RequestAuthorization) + { + ret = agent_RegisterCallback.agent_RequestAuthorization(device,&error); + } + + if (TRUE == ret) + { + agent_org_bluez_agent1_complete_request_authorization(object, + invocation); + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; +} + +/* + * agent api + * Methods : void AuthorizeService(object device, string uuid) + * + * This method gets called when the service daemon + * needs to authorize a connection/service request. + */ +static gboolean +on_handle_AuthorizeService (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *device, + const gchar *uuid, + gpointer user_data) +{ + + LOGD("device:%s.uuid:%s\n",device,uuid); + + gboolean ret = FALSE; + const gchar *error = ERROR_BLUEZ_REJECT; + + if (NULL != agent_RegisterCallback.agent_AuthorizeService) + { + ret = agent_RegisterCallback.agent_AuthorizeService(device, + uuid, &error); + } + + if (TRUE == ret) + { + agent_org_bluez_agent1_complete_authorize_service(object, invocation); + } + else + { + g_dbus_method_invocation_return_dbus_error (invocation, error, ""); + } + + return TRUE; +} + +/* + * agent api + * Methods : void Cancel() + * + * This method gets called to indicate that the agent + * request failed before a reply was returned. + */ +static gboolean +on_handle_Cancel (AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + gpointer user_data) +{ + LOGD("\n"); + + if (NULL != agent_RegisterCallback.agent_Cancel) + { + agent_RegisterCallback.agent_Cancel(); + } + + agent_org_bluez_agent1_complete_cancel(object, invocation); + + return TRUE; + +} + +/* + * agent init + * init the dbus and register the agent to bluez + */ +static int create_and_register_agent(const char *capability) +{ + GError *error = NULL; + gboolean ret; + GVariant *value; + + LOGD("%s\n",capability); + + if (agent_registered == TRUE) { + LOGD("Agent is already registered\n"); + return -1; + } + + system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); + + if (error) + { + LOGE("errr:%s",error->message); + g_error_free(error); + + return -1; + } + + agent_capability = capability; + + agnet_interface = agent_org_bluez_agent1_skeleton_new (); + + g_signal_connect (agnet_interface, + "handle-release", + G_CALLBACK (on_handle_Release), + NULL); + + g_signal_connect (agnet_interface, + "handle-request-pin-code", + G_CALLBACK (on_handle_RequestPinCode), + NULL); + + g_signal_connect (agnet_interface, + "handle-display-pin-code", + G_CALLBACK (on_handle_DisplayPinCode), + NULL); + + g_signal_connect (agnet_interface, + "handle-request-passkey", + G_CALLBACK (on_handle_RequestPasskey), + NULL); + + g_signal_connect (agnet_interface, + "handle-display-passkey", + G_CALLBACK (on_handle_DisplayPasskey), + NULL); + + g_signal_connect (agnet_interface, + "handle-request-confirmation", + G_CALLBACK (on_handle_RequestConfirmation), + NULL); + + g_signal_connect (agnet_interface, + "handle-request-authorization", + G_CALLBACK (on_handle_RequestAuthorization), + NULL); + + g_signal_connect (agnet_interface, + "handle-authorize-service", + G_CALLBACK (on_handle_AuthorizeService), + NULL); + + g_signal_connect (agnet_interface, + "handle-cancel", + G_CALLBACK (on_handle_Cancel), + NULL); + + ret = g_dbus_interface_skeleton_export ( + G_DBUS_INTERFACE_SKELETON (agnet_interface), + system_conn, + AGENT_PATH, + &error); + + if (FALSE == ret) + { + LOGE("errr:%s",error->message); + g_error_free(error); + g_object_unref(system_conn); + + return -1; + } + + value = g_dbus_connection_call_sync(system_conn, BLUEZ_SERVICE, + AGENT_PATH, AGENT_MANAGER_INTERFACE, + "RegisterAgent", g_variant_new("(os)", AGENT_PATH, + agent_capability), + NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + if (NULL == value) { + LOGE ("RegisterAgent Err: %s", error->message); + g_error_free(error); + + g_dbus_interface_skeleton_unexport( + G_DBUS_INTERFACE_SKELETON(agnet_interface)); + + g_object_unref(system_conn); + return -1; + } + + g_variant_unref(value); + + agent_capability = NULL; + + agent_registered = TRUE; + + return 0; +} + +#ifdef AGENT_THREAD +/* + * agent thread function + */ +static void *agent_event_loop_thread(const char *capability) +{ + + agentLoop = g_main_loop_new(NULL, FALSE); + guint id; + GError *error = NULL; + gboolean ret; + + ret = create_and_register_agent(capability); + + if (0 == ret) + { + LOGD("g_main_loop_run\n"); + g_main_loop_run(agentLoop); + + + } + + g_main_loop_unref(agentLoop); + agentLoop = NULL; + LOGD("exit...\n"); +} +#endif + + +/* --- PUBLIC FUNCTIONS --- */ + + +/* + * start agent. + * Returns: 0 - success or other errors + */ +int agent_register(const char *capability) +{ + int ret = 0; + LOGD("\n"); + + if (agent_registered == TRUE) { + LOGD("Agent is already registered\n"); + return -1; + } + +#ifdef AGENT_THREAD + pthread_t thread_id; + pthread_create(&thread_id, NULL, agent_event_loop_thread, capability); + pthread_setname_np(thread_id, "agent"); + +#else + ret = create_and_register_agent(capability); +#endif + + return ret; +} + +/* + * stop agent. + * Returns: 0 - success or other errors + */ +int stop_agent() +{ + GError *error = NULL; + GVariant *value; + + LOGD("\n"); + + if (agent_registered == FALSE) { + LOGD("No agent is registered\n"); + return -1; + } + + value = g_dbus_connection_call_sync(system_conn, BLUEZ_SERVICE, + AGENT_PATH, AGENT_MANAGER_INTERFACE, + "UnregisterAgent", g_variant_new("(o)", AGENT_PATH ), + NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + if (NULL == value) { + LOGE ("Error UnregisterAgent: %s", error->message); + g_error_free(error); + + return -1; + } + + g_dbus_interface_skeleton_unexport( + G_DBUS_INTERFACE_SKELETON(agnet_interface)); + + g_object_unref(agnet_interface); + + g_object_unref(system_conn); + + agent_registered = FALSE; + + memset(&agent_RegisterCallback, 0, sizeof(Agent_RegisterCallback_t)); + +#ifdef AGENT_THREAD + if(agentLoop){ + g_main_loop_quit(agentLoop); + } +#endif + + return 0; +} + +/* + * Register Agent Callback function + */ +void agent_API_register(const Agent_RegisterCallback_t* pstRegisterCallback) +{ + LOGD("\n"); + + if (NULL != pstRegisterCallback) + { + if (NULL != pstRegisterCallback->agent_Release) + { + agent_RegisterCallback.agent_Release = + pstRegisterCallback->agent_Release; + } + + if (NULL != pstRegisterCallback->agent_RequestPinCode) + { + agent_RegisterCallback.agent_RequestPinCode = + pstRegisterCallback->agent_RequestPinCode; + } + + if (NULL != pstRegisterCallback->agent_DisplayPinCode) + { + agent_RegisterCallback.agent_DisplayPinCode = + pstRegisterCallback->agent_DisplayPinCode; + } + + if (NULL != pstRegisterCallback->agent_RequestPasskey) + { + agent_RegisterCallback.agent_RequestPasskey = + pstRegisterCallback->agent_RequestPasskey; + } + + if (NULL != pstRegisterCallback->agent_DisplayPasskey) + { + agent_RegisterCallback.agent_DisplayPasskey = + pstRegisterCallback->agent_DisplayPasskey; + } + + if (NULL != pstRegisterCallback->agent_RequestConfirmation) + { + agent_RegisterCallback.agent_RequestConfirmation = + pstRegisterCallback->agent_RequestConfirmation; + } + + if (NULL != pstRegisterCallback->agent_RequestAuthorization) + { + agent_RegisterCallback.agent_RequestAuthorization = + pstRegisterCallback->agent_RequestAuthorization; + } + + if (NULL != pstRegisterCallback->agent_AuthorizeService) + { + agent_RegisterCallback.agent_AuthorizeService = + pstRegisterCallback->agent_AuthorizeService; + } + + if (NULL != pstRegisterCallback->agent_Cancel) + { + agent_RegisterCallback.agent_Cancel = + pstRegisterCallback->agent_Cancel; + } + + } + +} + +/* + * Send the agent event "RequestConfirmation" reply + */ +int agent_send_confirmation(gboolean confirmation) +{ + if (NULL == agent_event) + { + LOGW("Not agent event"); + return -1; + } + LOGD("%d-%d\n", confirmation, agent_event->type); + + if (REQUEST_CONFIRMATION != agent_event->type) + { + return -1; + } + + if (TRUE == confirmation){ + agent_org_bluez_agent1_complete_request_confirmation(agent_event->object, + agent_event->invocation); + }else{ + g_dbus_method_invocation_return_dbus_error (agent_event->invocation, + ERROR_BLUEZ_REJECT, ""); + } + + g_free(agent_event); + agent_event = NULL; + return 0; +} +/****************************** The End Of File ******************************/ + diff --git a/binding-bluetooth/bluetooth-agent.h b/binding-bluetooth/bluetooth-agent.h new file mode 100644 index 0000000..2b4b78a --- /dev/null +++ b/binding-bluetooth/bluetooth-agent.h @@ -0,0 +1,67 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#ifndef BLUETOOTH_AGENT_H +#define BLUETOOTH_AGENT_H + +#include +#include +#include + +#include "lib_agent.h" +#include "bluetooth-manager.h" + +//#define AGENT_THREAD +#define REQUEST_PINCCODE 1 +#define REQUEST_PASSKEY 2 +#define REQUEST_CONFIRMATION 3 +#define REQUEST_AUTHORIZATION 4 + +struct Agent_Node +{ + int type; + AGENTOrgBluezAgent1 *object; + GDBusMethodInvocation *invocation; +}; + +typedef struct tagAgent_RegisterCallback +{ + void (*agent_Release)(void); + gboolean (*agent_RequestPinCode) (const gchar *device, gchar **pincode, const gchar **error); + gboolean (*agent_DisplayPinCode)(const gchar *device, const gchar *pincode, const gchar **error); + gboolean (*agent_RequestPasskey)(const gchar *device, guint *passkey, const gchar **error); + void (*agent_DisplayPasskey)(const gchar *device, guint passkey, guint16 entered); + gboolean (*agent_RequestConfirmation)(const gchar *device, guint passkey, const gchar **error); + gboolean (*agent_RequestAuthorization)(const gchar *device, const gchar **error); + gboolean (*agent_AuthorizeService)(const gchar *device, const gchar *uuid, const gchar **error); + void (*agent_Cancel)(void); +}Agent_RegisterCallback_t; + + + +/* --- PUBLIC FUNCTIONS --- */ +void agent_API_register(const Agent_RegisterCallback_t* pstRegisterCallback); + +int agent_register(const char *capability); +int stop_agent(); + +int agent_send_confirmation(gboolean confirmation); + +#endif /* BLUETOOTH_AGENT_H */ + + +/****************************** The End Of File ******************************/ + diff --git a/binding-bluetooth/bluetooth-api.c b/binding-bluetooth/bluetooth-api.c new file mode 100644 index 0000000..79cebee --- /dev/null +++ b/binding-bluetooth/bluetooth-api.c @@ -0,0 +1,965 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include + +#include "bluetooth-manager.h" +#include "bluetooth-agent.h" +#include "bluetooth-api.h" + +/* + * the interface to afb-daemon + */ +const struct afb_binding_interface *afbitf; + +struct event +{ + struct event *next; + struct afb_event event; + char tag[1]; +}; + +static struct event *events = 0; + +/* searchs the event of tag */ +static struct event *event_get(const char *tag) +{ + struct event *e = events; + while(e && strcmp(e->tag, tag)) + e = e->next; + return e; +} + +/* deletes the event of tag */ +static int event_del(const char *tag) +{ + struct event *e, **p; + + /* check exists */ + e = event_get(tag); + if (!e) return -1; + + /* unlink */ + p = &events; + while(*p != e) p = &(*p)->next; + *p = e->next; + + /* destroys */ + afb_event_drop(e->event); + free(e); + return 0; +} + +/* creates the event of tag */ +static int event_add(const char *tag, const char *name) +{ + struct event *e; + + /* check valid tag */ + e = event_get(tag); + if (e) return -1; + + /* creation */ + e = malloc(strlen(tag) + sizeof *e); + if (!e) return -1; + strcpy(e->tag, tag); + + /* make the event */ + e->event = afb_daemon_make_event(afbitf->daemon, name); + if (!e->event.closure) { free(e); return -1; } + + /* link */ + e->next = events; + events = e; + return 0; +} + +static int event_subscribe(struct afb_req request, const char *tag) +{ + struct event *e; + e = event_get(tag); + return e ? afb_req_subscribe(request, e->event) : -1; +} + +static int event_unsubscribe(struct afb_req request, const char *tag) +{ + struct event *e; + e = event_get(tag); + return e ? afb_req_unsubscribe(request, e->event) : -1; +} + +static int event_push(struct json_object *args, const char *tag) +{ + struct event *e; + e = event_get(tag); + return e ? afb_event_push(e->event, json_object_get(args)) : -1; +} + +static json_object *new_json_object_parse_avrcp(struct btd_device *BDdevice, unsigned int filter) +{ + json_object *jresp = json_object_new_object(); + json_object *jstring = NULL; + + if (BD_AVRCP_TITLE & filter) + { + if (BDdevice->avrcp_title) + { + jstring = json_object_new_string(BDdevice->avrcp_title); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Title", jstring); + } + + if (BD_AVRCP_ARTIST & filter) + { + if (BDdevice->avrcp_artist) + { + jstring = json_object_new_string(BDdevice->avrcp_artist); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Artist", jstring); + } + + if (BD_AVRCP_STATUS & filter) + { + if (BDdevice->avrcp_status) + { + jstring = json_object_new_string(BDdevice->avrcp_status); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Status", jstring); + } + + if (BD_AVRCP_DURATION & filter) + { + json_object_object_add(jresp, "Duration", + json_object_new_int(BDdevice->avrcp_duration)); + } + + if (BD_AVRCP_POSITION & filter) + { + json_object_object_add(jresp, "Position", + json_object_new_int(BDdevice->avrcp_position)); + } + + return jresp; +} + +/* create device json object*/ +static json_object *new_json_object_from_device(struct btd_device *BDdevice, unsigned int filter) +{ + json_object *jresp = json_object_new_object(); + json_object *jstring = NULL; + + if (BD_PATH & filter) + { + if (BDdevice->path) + { + jstring = json_object_new_string(BDdevice->path); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Path", jstring); + } + + if (BD_ADDER & filter) + { + if (BDdevice->bdaddr) + { + jstring = json_object_new_string(BDdevice->bdaddr); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Address", jstring); + } + + if (BD_NAME & filter) + { + if (BDdevice->name) + { + jstring = json_object_new_string(BDdevice->name); + } + else + { + jstring = json_object_new_string(""); + } + json_object_object_add(jresp, "Name", jstring); + } + + if (BD_PAIRED & filter) + { + jstring = (TRUE == BDdevice->paired) ? + json_object_new_string("True"):json_object_new_string("False"); + json_object_object_add(jresp, "Paired", jstring); + } + + if (BD_TRUSTED & filter) + { + jstring = (TRUE == BDdevice->trusted) ? + json_object_new_string("True"):json_object_new_string("False"); + json_object_object_add(jresp, "Trusted", jstring); + } + + if (BD_ACLCONNECTED & filter) + { + jstring = (TRUE == BDdevice->connected) ? + json_object_new_string("True"):json_object_new_string("False"); + json_object_object_add(jresp, "Connected", jstring); + } + + if (BD_AVCONNECTED & filter) + { + jstring = (TRUE == BDdevice->avconnected) ? + json_object_new_string("True"):json_object_new_string("False"); + json_object_object_add(jresp, "AVPConnected", jstring); + + if (BDdevice->avconnected) + { + jstring = new_json_object_parse_avrcp(BDdevice, filter); + json_object_object_add(jresp, "Metadata", jstring); + } + } + + if (BD_TRANSPORT_STATE & filter) + { + jstring = BDdevice->transport_state ? + json_object_new_string(BDdevice->transport_state) : + json_object_new_string("none"); + json_object_object_add(jresp, "TransportState", jstring); + } + + if (BD_TRANSPORT_VOLUME & filter) + { + json_object_object_add(jresp, "TransportVolume", + json_object_new_int(BDdevice->transport_volume)); + } + + if (BD_HFPCONNECTED & filter) + { + jstring = (TRUE == BDdevice->hfpconnected) ? + json_object_new_string("True"):json_object_new_string("False"); + json_object_object_add(jresp, "HFPConnected", jstring); + } + + if (BD_UUID_PROFILES & filter) + { + GList *list = BDdevice->uuids; + + if (list) + { + json_object *jarray = json_object_new_array(); + + for (;list;list=list->next) + { + jstring = json_object_new_string(list->data); + json_object_array_add(jarray, jstring); + } + json_object_object_add(jresp, "UUIDs", jarray); + } + } + + return jresp; +} + +/**/ +static void bt_power (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + json_object *jresp = NULL; + int ret = 0; + + jresp = json_object_new_object(); + + /* no "?value=" parameter : return current state */ + if (!value) { + gboolean power_value; + ret = adapter_get_powered(&power_value); + + if (0==ret) + { + + setHMIStatus(ACTIVE); + (TRUE==power_value)?json_object_object_add (jresp, "power", json_object_new_string ("on")) + : json_object_object_add (jresp, "power", json_object_new_string ("off")); + } + else + { + afb_req_fail (request, "failed", "Unable to get power status"); + return; + } + + } + + /* "?value=" parameter is "1" or "true" */ + else if ( atoi(value) == 1 || !strcasecmp(value, "true") ) + { + if (adapter_set_powered (TRUE)) + { + afb_req_fail (request,"failed","no more radio devices available"); + return; + } + json_object_object_add (jresp, "power", json_object_new_string ("on")); + setHMIStatus(ACTIVE); + } + + /* "?value=" parameter is "0" or "false" */ + else if ( atoi(value) == 0 || !strcasecmp(value, "false") ) + { + if (adapter_set_powered (FALSE)) + { + afb_req_fail (request, "failed", "Unable to release radio device"); + return; + } + + json_object_object_add (jresp, "power", json_object_new_string("off")); + setHMIStatus(INACTIVE); + } + else + { + afb_req_fail (request, "failed", "Invalid value"); + return; + } + + afb_req_success (request, jresp, "Radio - Power set"); +} + +/**/ +static void bt_start_discovery (struct afb_req request) +{ + LOGD("\n"); + int ret = 0; + + ret = adapter_start_discovery(); + + if (ret) + { + afb_req_fail (request, "failed", "Unable to start discovery"); + return; + } + + afb_req_success (request, NULL, NULL); +} + +/**/ +static void bt_stop_discovery (struct afb_req request) +{ + LOGD("\n"); + int ret = 0; + + ret = adapter_stop_discovery(); + + if (ret) + { + afb_req_fail (request, "failed", "Unable to stop discovery"); + return; + } + + afb_req_success (request, NULL, NULL); +} + + +/**/ +static void bt_discovery_result (struct afb_req request) +{ + LOGD("\n"); + GSList *list = NULL; + GSList *tmp = NULL; + //adapter_update_devices(); + list = adapter_get_devices_list(); + if (NULL == list) + { + afb_req_fail (request, "failed", "No find devices"); + return; + } + + json_object *my_array = json_object_new_array(); + + tmp = list; + for(;tmp;tmp=tmp->next) + { + struct btd_device *BDdevice = tmp->data; + //LOGD("\n%s\t%s\n",BDdevice->bdaddr,BDdevice->name); + + unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_UUID_PROFILES; + + json_object *jresp = new_json_object_from_device(BDdevice, filter); + + json_object_array_add(my_array, jresp); + } + + adapter_devices_list_free(list); + + afb_req_success(request, my_array, "BT - Scan Result is Displayed"); +} + +/**/ +static void bt_pair (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + int ret = 0; + + if (NULL == value) + { + afb_req_fail (request, "failed", "Please Input the Device Address"); + return; + } + + ret = device_pair(value); + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Device pairing failed"); + } + +} + +/**/ +static void bt_cancel_pairing (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + int ret = 0; + + if (NULL == value) + { + afb_req_fail (request, "failed", "Please Input the Device Address"); + return; + } + + ret = device_cancelPairing(value); + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Device cancel pairing failed"); + } + +} + +/**/ +static void bt_connect (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + const char *uuid = afb_req_value (request, "uuid"); + int ret = 0; + + if (NULL == value) + { + afb_req_fail (request, "failed", "Please Input the Device Address"); + return; + } + + ret = device_connect(value, uuid); + + if (0 == ret) + { + json_object *jresp = json_object_new_object(); + json_object *jstring; + + jstring = json_object_new_string("connected"); + json_object_object_add(jresp, "Status", jstring); + + jstring = json_object_new_string(value); + json_object_object_add(jresp, "Address", jstring); + + if (uuid) { + jstring = json_object_new_string(uuid); + json_object_object_add(jresp, "UUID", jstring); + } + + event_push(jresp, "connection"); + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Device connect failed"); + } + +} + +/**/ +static void bt_disconnect (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + const char *uuid = afb_req_value (request, "uuid"); + int ret = 0; + + if (NULL == value) + { + afb_req_fail (request, "failed", "Please Input the Device Address"); + return; + } + + ret = device_disconnect(value, NULL); + if (0 == ret) + { + json_object *jresp = json_object_new_object(); + json_object *jstring; + + jstring = json_object_new_string("disconnected"); + json_object_object_add(jresp, "Status", jstring); + + jstring = json_object_new_string(value); + json_object_object_add(jresp, "Address", jstring); + + if (uuid) { + jstring = json_object_new_string(uuid); + json_object_object_add(jresp, "UUID", jstring); + } + + event_push(jresp, "connection"); + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Device disconnect failed"); + } + +} + +/**/ +static void bt_remove_device (struct afb_req request) +{ + LOGD("\n"); + + const char *value = afb_req_value (request, "value"); + int ret = 0; + + if (NULL == value) + { + afb_req_fail (request, "failed", "Please Input the Device Address"); + return; + } + + ret = adapter_remove_device(value); + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Remove Device failed"); + } + +} + + +/**/ +static void bt_set_device_property (struct afb_req request) +{ + LOGD("\n"); + + const char *address = afb_req_value (request, "Address"); + const char *property = afb_req_value (request, "Property"); + const char *value = afb_req_value (request, "value"); + int ret = 0; + GSList *list = NULL; + + if (NULL == address || NULL==property || NULL==value) + { + afb_req_fail (request, "failed", "Please Check Input Parameter"); + return; + } + + ret = device_set_property(address, property, value); + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Device set property failed"); + } + +} + +/**/ +static void bt_set_property (struct afb_req request) +{ + LOGD("\n"); + + const char *property = afb_req_value (request, "Property"); + const char *value = afb_req_value (request, "value"); + int ret = 0; + gboolean setvalue; + + + if (NULL==property || NULL==value) + { + afb_req_fail (request, "failed", "Please Check Input Parameter"); + return; + } + + + if ( atoi(value) == 1 || !strcasecmp(value, "true") ) + { + ret = adapter_set_property (property, TRUE); + + } + + /* "?value=" parameter is "0" or "false" */ + else if ( atoi(value) == 0 || !strcasecmp(value, "false") ) + { + ret = adapter_set_property (property, FALSE); + } + else + { + afb_req_fail (request, "failed", "Invalid value"); + return; + } + + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Bluetooth set property failed"); + } + +} + +/**/ +static void bt_set_avrcp_controls (struct afb_req request) +{ + LOGD("\n"); + + const char *address = afb_req_value (request, "Address"); + const char *value = afb_req_value (request, "value"); + int ret = 0; + GSList *list = NULL; + + if (NULL==value) + { + afb_req_fail (request, "failed", "Please Check Input Parameter"); + return; + } + + if (NULL == address) + { + list = adapter_get_devices_list(); + if (NULL == list) + { + afb_req_fail (request, "failed", "No find devices"); + return; + } + + for (;list;list=list->next) + { + struct btd_device *BDdevice = list->data; + //LOGD("\n%s\t%s\n",BDdevice->bdaddr,BDdevice->name); + if (BDdevice->avconnected) + { + address = BDdevice->bdaddr; + break; + } + } + } + + ret = device_call_avrcp_method(address, value); + if (0 == ret) + { + afb_req_success (request, NULL, NULL); + } + else + { + afb_req_fail (request, "failed", "Bluetooth set avrcp control failed"); + } +} + +static void eventadd (struct afb_req request) +{ + const char *tag = afb_req_value(request, "tag"); + const char *name = afb_req_value(request, "name"); + + if (tag == NULL || name == NULL) + afb_req_fail(request, "failed", "bad arguments"); + else if (0 != event_add(tag, name)) + afb_req_fail(request, "failed", "creation error"); + else + afb_req_success(request, NULL, NULL); +} + +static void eventdel (struct afb_req request) +{ + const char *tag = afb_req_value(request, "tag"); + + if (tag == NULL) + afb_req_fail(request, "failed", "bad arguments"); + else if (0 != event_del(tag)) + afb_req_fail(request, "failed", "deletion error"); + else + afb_req_success(request, NULL, NULL); +} + +static void eventsub (struct afb_req request) +{ + const char *tag = afb_req_value(request, "tag"); + + if (tag == NULL) + afb_req_fail(request, "failed", "bad arguments"); + else if (0 != event_subscribe(request, tag)) + afb_req_fail(request, "failed", "subscription error"); + else + afb_req_success(request, NULL, NULL); +} + +static void eventunsub (struct afb_req request) +{ + const char *tag = afb_req_value(request, "tag"); + + if (tag == NULL) + afb_req_fail(request, "failed", "bad arguments"); + else if (0 != event_unsubscribe(request, tag)) + afb_req_fail(request, "failed", "unsubscription error"); + else + afb_req_success(request, NULL, NULL); +} + +static void eventpush (struct afb_req request) +{ + const char *tag = afb_req_value(request, "tag"); + const char *data = afb_req_value(request, "data"); + json_object *object = data ? json_tokener_parse(data) : NULL; + + if (tag == NULL) + afb_req_fail(request, "failed", "bad arguments"); + else if (0 > event_push(object, tag)) + afb_req_fail(request, "failed", "push error"); + else + afb_req_success(request, NULL, NULL); +} + +/* + * broadcast new device + */ +void bt_broadcast_device_added(struct btd_device *BDdevice) +{ + unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_UUID_PROFILES; + int ret; + json_object *jresp = new_json_object_from_device(BDdevice, filter); + + LOGD("\n"); + ret = event_push(jresp,"device_added"); + //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_added", jresp); + LOGD("%d\n",ret); +} + +/* + * broadcast device removed + */ +void bt_broadcast_device_removed(struct btd_device *BDdevice) +{ + unsigned int filter = BD_ADDER; + int ret; + json_object *jresp = new_json_object_from_device(BDdevice, filter); + + LOGD("\n"); + ret = event_push(jresp,"device_removed"); + //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_removed", jresp); + LOGD("%d\n",ret); +} + + +/* + * broadcast device updated + */ +void bt_broadcast_device_properties_change(struct btd_device *BDdevice) +{ + + unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_AVRCP_TITLE|BD_AVRCP_ARTIST|BD_AVRCP_STATUS|BD_AVRCP_DURATION|BD_AVRCP_POSITION|BD_TRANSPORT_STATE|BD_TRANSPORT_VOLUME|BD_UUID_PROFILES; + + int ret; + json_object *jresp = new_json_object_from_device(BDdevice, filter); + + LOGD("\n"); + ret = event_push(jresp,"device_updated"); + //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_updated", jresp); + LOGD("%d\n",ret); +} + +/* + * broadcast request confirmation + */ +gboolean bt_request_confirmation(const gchar *device, guint passkey) +{ + json_object *jresp = json_object_new_object(); + json_object *jstring = NULL; + int ret; + + jstring = json_object_new_string(device); + json_object_object_add(jresp, "Address", jstring); + jstring = json_object_new_int(passkey); + json_object_object_add(jresp, "Passkey", jstring); + + ret = event_push(jresp,"request_confirmation"); + //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_updated", jresp); + + LOGD("%d\n",ret); + + if (ret >0) { + return TRUE; + }else { + return FALSE; + } + +} + +static void bt_send_confirmation(struct afb_req request) +{ + const char *value = afb_req_value(request, "value"); + int ret; + gboolean confirmation; + + if (!value) { + afb_req_fail (request, "failed", "Unable to get value status"); + return; + } + + /* "?value=" parameter is "1" or "yes" */ + else if ( atoi(value) == 1 || !strcasecmp(value, "yes") ) + { + ret = agent_send_confirmation (TRUE); + } + + /* "?value=" parameter is "0" or "no" */ + else if ( atoi(value) == 0 || !strcasecmp(value, "no") ) + { + ret = agent_send_confirmation (TRUE); + } + else + { + afb_req_fail (request, "failed", "Invalid value"); + return; + } + + if ( 0==ret) { + afb_req_success(request, NULL, NULL); + }else { + afb_req_success(request, "failed", "fail"); + } + +} + +/* + * array of the verbs exported to afb-daemon + */ +static const struct afb_verb_desc_v1 binding_verbs[]= { +/* VERB'S NAME SESSION MANAGEMENT FUNCTION TO CALL SHORT DESCRIPTION */ +{ .name = "power", .session = AFB_SESSION_NONE, .callback = bt_power, .info = "Set Bluetooth Power ON or OFF" }, +{ .name = "start_discovery", .session = AFB_SESSION_NONE, .callback = bt_start_discovery, .info = "Start discovery" }, +{ .name = "stop_discovery", .session = AFB_SESSION_NONE, .callback = bt_stop_discovery, .info = "Stop discovery" }, +{ .name = "discovery_result", .session = AFB_SESSION_NONE, .callback = bt_discovery_result, .info = "Get discovery result" }, +{ .name = "remove_device", .session = AFB_SESSION_NONE, .callback = bt_remove_device, .info = "Remove the special device" }, +{ .name = "pair", .session = AFB_SESSION_NONE, .callback = bt_pair, .info = "Pair to special device" }, +{ .name = "cancel_pair", .session = AFB_SESSION_NONE, .callback = bt_cancel_pairing, .info = "Cancel the pairing process" }, +{ .name = "connect", .session = AFB_SESSION_NONE, .callback = bt_connect, .info = "Connect to special device" }, +{ .name = "disconnect", .session = AFB_SESSION_NONE, .callback = bt_disconnect, .info = "Disconnect special device" }, +{ .name = "set_device_property", .session = AFB_SESSION_NONE, .callback = bt_set_device_property, .info = "Set special device property" }, +{ .name = "set_property", .session = AFB_SESSION_NONE, .callback = bt_set_property, .info = "Set Bluetooth property" }, +{ .name = "set_avrcp_controls", .session = AFB_SESSION_NONE, .callback = bt_set_avrcp_controls, .info = "Set Bluetooth AVRCP controls" }, +{ .name = "send_confirmation", .session = AFB_SESSION_NONE, .callback = bt_send_confirmation, .info = "Send Confirmation" }, +{ .name = "eventadd", .session = AFB_SESSION_NONE, .callback = eventadd, .info = "adds the event of 'name' for the 'tag'"}, +{ .name = "eventdel", .session = AFB_SESSION_NONE, .callback = eventdel, .info = "deletes the event of 'tag'"}, +{ .name = "eventsub", .session = AFB_SESSION_NONE, .callback = eventsub, .info = "subscribes to the event of 'tag'"}, +{ .name = "eventunsub", .session = AFB_SESSION_NONE, .callback = eventunsub, .info = "unsubscribes to the event of 'tag'"}, +{ .name = "eventpush", .session = AFB_SESSION_NONE, .callback = eventpush, .info = "pushs the event of 'tag' with the 'data'"}, + +{ .name = NULL } /* marker for end of the array */ +}; + +/* + * description of the binding for afb-daemon + */ +static const struct afb_binding binding_description = +{ + .type = AFB_BINDING_VERSION_1, + .v1 = { + .info = "Application Framework Binder - Bluetooth Manager plugin", + .prefix = "Bluetooth-Manager", + .verbs = binding_verbs + } +}; + +/* + * activation function for registering the binding called by afb-daemon + */ +const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) +{ + afbitf = itf; // records the interface for accessing afb-daemon + +#if 1 +//temp solution to fix configure Bluetooth USB Dongle + system("rfkill unblock bluetooth"); + system("hciconfig hci0 up"); +#endif + + Binding_RegisterCallback_t API_Callback; + API_Callback.binding_device_added = bt_broadcast_device_added; + API_Callback.binding_device_removed = bt_broadcast_device_removed; + API_Callback.binding_device_properties_changed = bt_broadcast_device_properties_change; + API_Callback.binding_request_confirmation = bt_request_confirmation; + BindingAPIRegister(&API_Callback); + + BluetoothManagerInit(); + + return &binding_description; +} + +#if 0 +int afbBindingV1ServiceInit(struct afb_service service) +{ + return BluetoothManageInit(); +} +#endif + + +/***************************** The End Of File ******************************/ + diff --git a/binding-bluetooth/bluetooth-api.h b/binding-bluetooth/bluetooth-api.h new file mode 100644 index 0000000..b1dbd45 --- /dev/null +++ b/binding-bluetooth/bluetooth-api.h @@ -0,0 +1,60 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#ifndef BLUETOOTH_API_H +#define BLUETOOTH_API_H + + +#define LEFT_SHIFT(shift) (0x00000001ul << (shift) ) + +#define BD_NONE 0x00000000 +#define BD_PATH LEFT_SHIFT(0) +#define BD_ADDER LEFT_SHIFT(1) +#define BD_NAME LEFT_SHIFT(2) +#define BD_ALIAS LEFT_SHIFT(3) +#define BD_PAIRED LEFT_SHIFT(4) +#define BD_TRUSTED LEFT_SHIFT(5) +#define BD_BLOCKED LEFT_SHIFT(6) +#define BD_ACLCONNECTED LEFT_SHIFT(7) +#define BD_AVCONNECTED LEFT_SHIFT(8) +#define BD_HFPCONNECTED LEFT_SHIFT(9) +#define BD_LEGACYPAIRING LEFT_SHIFT(10) +#define BD_RSSI LEFT_SHIFT(11) +#define BD_AVRCP_TITLE LEFT_SHIFT(12) +#define BD_AVRCP_ARTIST LEFT_SHIFT(13) +#define BD_AVRCP_STATUS LEFT_SHIFT(14) +#define BD_AVRCP_DURATION LEFT_SHIFT(15) +#define BD_AVRCP_POSITION LEFT_SHIFT(16) +#define BD_TRANSPORT_STATE LEFT_SHIFT(17) +#define BD_TRANSPORT_VOLUME LEFT_SHIFT(18) +#define BD_UUID_PROFILES LEFT_SHIFT(19) + + +/* -------------- PLUGIN DEFINITIONS ----------------- */ + +typedef struct { + void *bt_server; /* handle to implementation */ + unsigned int index; /* currently selected media file */ +} BtCtxHandleT; + + +#endif /* BLUETOOTH_API_H */ + + + +/****************************** The End Of File ******************************/ + + diff --git a/binding-bluetooth/bluetooth-manager.c b/binding-bluetooth/bluetooth-manager.c new file mode 100644 index 0000000..5ce90ce --- /dev/null +++ b/binding-bluetooth/bluetooth-manager.c @@ -0,0 +1,1811 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "bluetooth-manager.h" +#include "bluez-client.h" +#include "ofono-client.h" +#include "bluetooth-agent.h" + +static Client cli = { 0 }; +static Binding_RegisterCallback_t g_RegisterCallback = { 0 }; +static stBluetoothManage BluetoothManage = { 0 }; +static FILE *logfp= NULL; + +/* ------ LOCAL FUNCTIONS --------- */ +void BluetoothManage_InitFlag_Set(gboolean value) +{ + BluetoothManage.inited = value; +} + +gboolean BluetoothManage_InitFlag_Get(void) +{ + return BluetoothManage.inited; +} + +void devices_list_lock(void) +{ + g_mutex_lock(&(BluetoothManage.m)); +} + +void devices_list_unlock(void) +{ + g_mutex_unlock(&(BluetoothManage.m)); +} + +static int device_path_cmp(struct btd_device * device, const gchar* pPath ) +{ + return !g_str_has_prefix (pPath, device->path); +} + +/* + * search device by path + * Returns the first found btd_device or NULL if it is not found + */ +struct btd_device *devices_list_find_device_by_path(const gchar* pPath) +{ + GSList * temp; + + temp = g_slist_find_custom (BluetoothManage.device, pPath, + (GCompareFunc)device_path_cmp); + + if (temp) { + return temp->data; + } + + return NULL; + +} + + +static int device_bdaddr_cmp(struct btd_device * device, const gchar* pBDaddr ) +{ + return g_strcmp0 (device->bdaddr, pBDaddr); +} + +/* + * search device by path + * Returns the first found btd_device or NULL if it is not found + */ +struct btd_device *devices_list_find_device_by_bdaddr(const gchar* pBDaddr) +{ + GSList * temp; + + temp = g_slist_find_custom (BluetoothManage.device, pBDaddr, + (GCompareFunc)device_bdaddr_cmp); + + if (temp) { + return temp->data; + } + + return NULL; + +} + + +/* + * make a copy of each element + * And, to entirely free the new btd_device, you could do: device_free + */ +struct btd_device *device_copy(struct btd_device* device) +{ + struct btd_device * temp; + + if (NULL == device) { + return NULL; + } + + temp = g_malloc0(sizeof(struct btd_device)); + temp->path = g_strdup(device->path); + temp->bdaddr = g_strdup(device->bdaddr); + temp->name = g_strdup(device->name); + temp->paired = device->paired; + temp->trusted = device->trusted; + temp->connected = device->connected; + temp->avconnected = device->avconnected; + temp->hfpconnected = device->hfpconnected; + temp->uuids = g_list_copy_deep(device->uuids, g_strdup, NULL); + + return temp; +} + +/* + * Frees all of the memory + */ +void device_free(struct btd_device* device) +{ + + if (NULL == device) { + return ; + } + D_PRINTF("device %p\n",device); + if (device->path) { + D_PRINTF("path:%s\n",device->path); + g_free(device->path); + device->path = NULL; + } + if (device->bdaddr) { + D_PRINTF("bdaddr:%s\n",device->bdaddr); + g_free(device->bdaddr); + device->bdaddr = NULL; + } + if (device->name) { + D_PRINTF("name:%s\n",device->name); + g_free(device->name); + device->name = NULL; + } + + if (device->avrcp_title) { + D_PRINTF("avrcp_title:%s\n",device->avrcp_title); + g_free(device->avrcp_title); + device->avrcp_title = NULL; + } + + if (device->avrcp_artist) { + D_PRINTF("avrcp_artist:%s\n",device->avrcp_artist); + g_free(device->avrcp_artist); + device->avrcp_artist = NULL; + } + + if (device->avrcp_status) { + D_PRINTF("avrcp_status:%s\n",device->avrcp_status); + g_free(device->avrcp_status); + device->avrcp_status = NULL; + } + + if (device->transport_state) { + D_PRINTF("transport_state:%s\n",device->transport_state); + g_free(device->transport_state); + device->transport_state = NULL; + } + + if (device->uuids) { + D_PRINTF("uuids: xxx\n"); + g_list_free_full(device->uuids, g_free); + device->uuids = NULL; + } + + g_free(device); +} + +void device_print(struct btd_device *BDdevice) +{ + g_print("device %p\n",BDdevice); + g_print("bdaddr\t\t:%s\n",BDdevice->bdaddr); + g_print("name\t\t:%s\n",BDdevice->name); + g_print("trusted\t\t:%d\n",BDdevice->trusted); + g_print("paired\t\t:%d\n",BDdevice->paired); + + g_print("connected\t:%d\n",BDdevice->connected); + g_print("AVPconnected\t:%d\n",BDdevice->avconnected); + g_print("HFPconnected\t:%d\n",BDdevice->hfpconnected); +} + +/* + * remove all the devices + */ +void devices_list_cleanup() +{ + LOGD("\n"); + GSList * temp = BluetoothManage.device; + while (temp) { + struct btd_device *BDdevice = temp->data; + temp = temp->next; + + BluetoothManage.device = g_slist_remove_all(BluetoothManage.device, + BDdevice); + + device_free(BDdevice); + } +} + +/* + * Print all the devices + */ +void devices_list_print() +{ + LOGD("\n"); + GSList * temp = BluetoothManage.device; + while (temp) { + struct btd_device *BDdevice = temp->data; + temp = temp->next; + g_print("----------------------------------------\n"); + device_print(BDdevice); + } + g_print("----------------------------------------\n"); +} + +/* + * update device from Interfcace org.bluez.MediaControl1 properties + */ +static int device_update_from_MediaControl1(struct btd_device *device, + GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + //gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + //guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"Connected")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Connected %d\n",value_b); + device->avconnected = value_b; + }else if (0==g_strcmp0(key,"Player")) { + g_variant_get(subValue, "o", &str ); + D_PRINTF("Player Object %s\n",str); + } + } + + return 0; +} + +/* + * update device from Interface org.bluez.MediaTransport1 properties + */ +static int device_update_from_MediaTransport1(struct btd_device *device, + GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + //gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + //gint16 value_n = 0;//n gint16 + guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + //guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"State")) { + g_variant_get(subValue, "s", &str); + D_PRINTF("State %s\n", str); + if (device->transport_state) + free(device->transport_state); + device->transport_state = g_strdup(str); + } else if (0==g_strcmp0(key,"Volume")) { + g_variant_get(subValue, "q", &value_q); + D_PRINTF("Volume %d\n", value_q); + device->transport_volume = value_q; + } + } + + return 0; +} + + +static int device_update_from_Track(struct btd_device *device, + GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + //gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"Title")) { + g_variant_get(subValue, "s", &str); + D_PRINTF("Title %s\n", str); + if (device->avrcp_title) + free(device->avrcp_title); + device->avrcp_title = g_strdup(str); + } else if (0==g_strcmp0(key,"Artist")) { + g_variant_get(subValue, "s", &str); + D_PRINTF("Artist %s\n", str); + if (device->avrcp_artist) + free(device->avrcp_artist); + device->avrcp_artist = g_strdup(str); + } else if (0==g_strcmp0(key,"Duration")) { + g_variant_get(subValue, "u", &value_u); + D_PRINTF("Duration %u\n", value_u); + device->avrcp_duration = value_u; + } + } + + return 0; +} + +/* + * update device from Interface org.bluez.MediaPlayer1 properties + */ +static int device_update_from_MediaPlayer1(struct btd_device *device, + GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + //gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"Status")) { + g_variant_get(subValue, "s", &str); + D_PRINTF("Status %s\n", str); + if (device->avrcp_status) + free(device->avrcp_status); + device->avrcp_status = g_strdup(str); + } else if (0==g_strcmp0(key,"Position")) { + g_variant_get(subValue, "u", &value_u); + D_PRINTF("Position %d\n", value_u); + device->avrcp_position = value_u; + } else if (0==g_strcmp0(key,"Track")) { + device_update_from_Track(device, subValue); + } + } + + return 0; +} + +/* + * update device from Interfcace org.bluez.Device1 properties + */ +static int device_update_from_Device1(struct btd_device *device, + GVariant *value) +{ + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + //gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + //guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"Address")) { + g_variant_get(subValue, "s", &str ); + D_PRINTF("Address %s\n",str); + + if (device->bdaddr) + g_free (device->bdaddr); + + device->bdaddr = g_strdup(str); + + g_free (str); + str = NULL; + + }else if (0==g_strcmp0(key,"Name")) { + g_variant_get(subValue, "s", &str ); + D_PRINTF("Name %s\n",str); + + if (device->name) + g_free (device->name); + + device->name = g_strdup(str); + + g_free (str); + str = NULL; + + }else if (0==g_strcmp0(key,"Paired")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Paired %d\n",value_b); + device->paired = value_b; + }else if (0==g_strcmp0(key,"Trusted")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Trusted %d\n",value_b); + device->trusted = value_b; + }else if (0==g_strcmp0(key,"Connected")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Connected %d\n",value_b); + device->connected = value_b; + } + } + + return 0; + +} +#if 0 +/* + * update device from Interfcace org.bluez.MediaControl1 properties + */ +static int bluez_mediacontrol1_properties_update(struct bt_device *device, + GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + //guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str;//d gdouble + + if (0==g_strcmp0(key,"Connected")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Connected %d\n",value_b); + device->avconnected = value_b; + + }else if (0==g_strcmp0(key,"Player")) { + g_variant_get(subValue, "o", &str ); + D_PRINTF("Player Object %s\n",str); + + } + } + + return 0; + +} +#endif + +/* + * make a copy of each element + */ +struct btd_device *device_copy_from_bluez(struct bt_device* device) +{ + struct btd_device * temp; + + if (NULL == device) { + return NULL; + } + + temp = g_malloc0(sizeof(struct btd_device)); + temp->path = g_strdup(device->path); + temp->bdaddr = g_strdup(device->bdaddr); + temp->name = g_strdup(device->name); + temp->paired = device->paired; + temp->trusted = device->trusted; + temp->connected = device->connected; + temp->avconnected = device->avconnected; + temp->uuids = g_list_copy_deep(device->uuids, g_strdup, NULL); + + return temp; +} + +/* + * Force Update the device list + * Call GetManagedObjects + * Returns: 0 - success or other errors + */ +int devices_list_update(void) +{ + LOGD("\n"); + + GSList* list; + GSList* tmp; + list = GetBluezDevicesList(); + + if (NULL == list) + { + return -1; + } + + tmp = list; + + devices_list_lock(); + + devices_list_cleanup(); + + while(tmp) + { + struct bt_device *BDdevice = tmp->data; + tmp = tmp->next; + + struct btd_device * new_device = device_copy_from_bluez(BDdevice); + + if (new_device) + { + gchar * ofono_path = g_strconcat("/hfp", new_device->path, NULL); + if (ofono_path) + new_device->hfpconnected = + getOfonoModemPoweredByPath(ofono_path); + + //BluetoothManage.device = g_slist_prepend(BluetoothManage.device, new_device); + BluetoothManage.device = + g_slist_append(BluetoothManage.device, new_device); + } + + } + + FreeBluezDevicesList(list); + + devices_list_unlock(); + + + return 0; +} + + +/* + * notify::name-owner callback function + */ +static void bluez_device_added_cb(struct bt_device *device) +{ + LOGD("\n"); + + struct btd_device * new_device; + + if (NULL == device) + { + return; + } + + new_device = device_copy_from_bluez(device); + + devices_list_lock(); + + //BluetoothManage.device = g_slist_prepend(BluetoothManage.device, new_device); + BluetoothManage.device = g_slist_append(BluetoothManage.device,new_device); + if (NULL != g_RegisterCallback.binding_device_added) + { + g_RegisterCallback.binding_device_added(new_device); + } + + devices_list_unlock(); + +} + +/* + * object-removed callback function + */ +static void bluez_device_removed_cb (const gchar *path) +{ + struct btd_device *device; + + LOGD("%s\n",path); + + devices_list_lock(); + + device = devices_list_find_device_by_path(path); + + if (device) { + BluetoothManage.device = g_slist_remove_all(BluetoothManage.device, + device); + + if (NULL != g_RegisterCallback.binding_device_removed) + { + g_RegisterCallback.binding_device_removed(device); + } + + device_free(device); + } + + devices_list_unlock(); + +} + +/* + * BLUEZ interface-proxy-properties-changed callback function + */ +static void +bluez_device_properties_changed_cb (const gchar *pObjecPath, + const gchar *pInterface, + GVariant *properties) +{ + + struct btd_device *device; + +#if 0 + gchar *s; + g_print ("Path:%s, Interface:%s\n",pObjecPath, pInterface); + g_print ("type '%s'\n", g_variant_get_type_string (properties)); + s = g_variant_print (properties, TRUE); + g_print (" %s\n", s); + g_free (s); +#endif + + LOGD("%s\n",pObjecPath); + + devices_list_lock(); + + device = devices_list_find_device_by_path(pObjecPath); + + if (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) { + + device_update_from_Device1(device, properties); + + } else if (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) { + + device_update_from_MediaControl1(device, properties); + + } else if (0 == g_strcmp0(pInterface, MEDIA_PLAYER1_INTERFACE)) { + + device_update_from_MediaPlayer1(device, properties); + + } else if (0 == g_strcmp0(pInterface, MEDIA_TRANSPORT1_INTERFACE)) { + + device_update_from_MediaTransport1(device, properties); + + } + + if (g_RegisterCallback.binding_device_properties_changed) + g_RegisterCallback.binding_device_properties_changed(device); + + devices_list_unlock(); + +} + +void ofono_modem_added_cb(struct ofono_modem *modem) +{ + struct btd_device * device; + gchar *path; + + path = modem->path; + + LOGD("%s\n",path); + + if (NULL == path) + return; + + devices_list_lock(); + device = devices_list_find_device_by_path(path+4); + + if (device) + { + gboolean old_value = device->hfpconnected; + + device->hfpconnected = modem->powered; + + if ((NULL != g_RegisterCallback.binding_device_properties_changed) + && (old_value != device->hfpconnected)) + { + g_RegisterCallback.binding_device_properties_changed(device); + } + } + devices_list_unlock(); + +} + +void ofono_modem_removed_cb(struct ofono_modem *modem) +{ + struct btd_device * device; + gchar *path = modem->path; + + LOGD("%s\n",path); + + if (NULL == path) + return; + + devices_list_lock(); + device = devices_list_find_device_by_path(path+4); + + if (device) + { + gboolean old_value = device->hfpconnected; + + device->hfpconnected = FALSE; + + if ((NULL != g_RegisterCallback.binding_device_properties_changed) + && (old_value != device->hfpconnected)) + { + g_RegisterCallback.binding_device_properties_changed(device); + } + } + devices_list_unlock(); +} + +void ofono_modem_properties_change_cb(struct ofono_modem *modem) +{ + struct btd_device * device; + gchar *path = modem->path; + + LOGD("%s\n",path); + + if (NULL == path) + return; + + devices_list_lock(); + device = devices_list_find_device_by_path(path+4); + + if (device) + { + gboolean old_value = device->hfpconnected; + + device->hfpconnected = modem->powered; + + if ((NULL != g_RegisterCallback.binding_device_properties_changed) + && (old_value != device->hfpconnected)) + { + g_RegisterCallback.binding_device_properties_changed(device); + } + } + devices_list_unlock(); +} + +gboolean agent_requset_confirm( const gchar *device_path, + guint passkey, + const gchar **error) +{ + gboolean ret = FALSE; + + const gchar *myerror = ERROR_BLUEZ_REJECT; + + LOGD("-%s,%d\n",device_path,passkey); + + if (NULL != g_RegisterCallback.binding_request_confirmation) + { + + devices_list_lock(); + struct btd_device *device = devices_list_find_device_by_path(device_path); + gchar *device_bdaddr = NULL; + + if (device) + { + device_bdaddr = g_strdup(device->bdaddr); + } + devices_list_unlock(); + + if (device_bdaddr) + ret = g_RegisterCallback.binding_request_confirmation(device_bdaddr, passkey); + } + + if (TRUE == ret) + { + LOGD("return TRUE\n"); + return TRUE; + }else{ + *error = myerror; + LOGD("return FALSE\n"); + return FALSE; + } +} + + +/* + * register callback function + * Returns: 0 - success or other errors + */ +static int bt_manager_app_init(void) +{ + GError *error = NULL; + int ret; + + cli.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); + if (error) { + LOGE("Create System GDBusconnection fail\n"); + LOGE("Error:%s\n", error->message); + g_error_free(error); + return -1; + } + + cli.session_conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); + if (error) { + LOGE("Create Session GDBusconnection fail\n"); + LOGE("Error:%s\n", error->message); + g_error_free(error); + g_object_unref(cli.system_conn); + return -1; + } + + Bluez_RegisterCallback_t Bluez_API_Callback; + Bluez_API_Callback.device_added = bluez_device_added_cb; + Bluez_API_Callback.device_removed = bluez_device_removed_cb; + Bluez_API_Callback.device_properties_changed = bluez_device_properties_changed_cb; + BluezDeviceAPIRegister(&Bluez_API_Callback); + + Ofono_RegisterCallback_t Ofono_API_Callback; + Ofono_API_Callback.modem_added = ofono_modem_added_cb; + Ofono_API_Callback.modem_removed = ofono_modem_removed_cb; + Ofono_API_Callback.modem_properties_changed = ofono_modem_properties_change_cb; + OfonoModemAPIRegister(&Ofono_API_Callback); + + + Agent_RegisterCallback_t AgentRegCallback; + AgentRegCallback.agent_RequestConfirmation = agent_requset_confirm; + agent_API_register(&AgentRegCallback); + + ret = BluezManagerInit(); + if (0 != ret ) + { + LOGE("BluezManagerInit fail\n"); + return -1; + } + + ret = OfonoManagerInit(); + if (0 != ret ) + { + LOGE("OfonoManagerInit fail\n"); + + BluezManagerQuit(); + return -1; + } + + ret = agent_register(""); + if (0 != ret ) + { + LOGE("agent_register fail\n"); + + BluezManagerQuit(); + OfonoManagerQuit(); + return -1; + } + + return 0; +} + +/* + * Bluetooth Manager Thread + * register callback function and create a new GMainLoop structure + */ +static void *bt_event_loop_thread() +{ + int ret = 0; + + cli.clientloop = g_main_loop_new(NULL, FALSE); + + ret = bt_manager_app_init(); + + if (0 == ret){ + + devices_list_update(); + + BluetoothManage.inited = TRUE; + LOGD("g_main_loop_run\n"); + g_main_loop_run(cli.clientloop); + + } + + g_main_loop_unref(cli.clientloop); + + LOGD("Exit\n"); +} + +/* + * print log message + */ +void DebugTraceSendMsg(int level, gchar* message) +{ + + if (logfp) + { + struct timeval tv; + struct tm tm; + char s[32] = {0}; + + gettimeofday(&tv, NULL); + localtime_r(&tv.tv_sec, &tm); + strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm); + fprintf(logfp, "[%s.%6.6d] ", s, (int)(tv.tv_usec)); + + switch (level) + { + case DT_LEVEL_ERROR: + fprintf(logfp,"[E]"); + break; + + case DT_LEVEL_WARNING: + fprintf(logfp,"[W]"); + break; + + case DT_LEVEL_NOTICE: + fprintf(logfp,"[N]"); + break; + + case DT_LEVEL_INFO: + fprintf(logfp,"[I]"); + break; + + case DT_LEVEL_DEBUG: + fprintf(logfp,"[D]"); + break; + + default: + fprintf(logfp,"[-]"); + break; + } + + fprintf(logfp,"%s\n",message); + fflush(logfp); + } +#ifdef LOCAL_PRINT_DEBUG + switch (level) + { + case DT_LEVEL_ERROR: + g_print("[E]"); + break; + + case DT_LEVEL_WARNING: + g_print("[W]"); + break; + + case DT_LEVEL_NOTICE: + g_print("[N]"); + break; + + case DT_LEVEL_INFO: + g_print("[I]"); + break; + + case DT_LEVEL_DEBUG: + g_print("[D]"); + break; + + default: + g_print("[-]"); + break; + } + + g_print("%s",message); +#endif + + if (message) { + g_free(message); + } + +} + + + +/* ------ PUBLIC PLUGIN FUNCTIONS --------- */ + +/* + * Set the Bluez Adapter Property "Powered" value + * If success return 0, else return -1; + */ +int adapter_set_powered(gboolean powervalue) +{ + LOGD("value:%d\n",powervalue); + + GError *error = NULL; + GVariant *value; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, FREEDESKTOP_PROPERTIES, + "Set", g_variant_new("(ssv)", ADAPTER_INTERFACE, + "Powered", g_variant_new("b", powervalue)), + NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; +} + +/* + * Get the Bluez Adapter Property "Powered" value + * If success return 0, else return -1; + */ +int adapter_get_powered(gboolean *powervalue) { + LOGD("\n"); + + GError *error = NULL; + GVariant *value = NULL; + GVariant *subValue = NULL; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + if (NULL == powervalue) { + LOGD("powervalue is NULL\n"); + return -1; + } + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, FREEDESKTOP_PROPERTIES, "Get", + g_variant_new("(ss)", ADAPTER_INTERFACE, "Powered"), + NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s\n", error->message); + g_error_free(error); + return -1; + } + + g_variant_get(value, "(v)", &subValue); + g_variant_get(subValue, "b", powervalue); + g_variant_unref(subValue); + + g_variant_unref(value); + + LOGD("get ret :%d\n",*powervalue); + return 0; +} + +/* + * Set the Bluez Adapter Property value + * Only support boolean property now.(Discoverable, Pairable, Powered) + * If success return 0, else return -1; + */ +int adapter_set_property(const gchar* property, gboolean setvalue) +{ + LOGD("property:%s,value:%d\n",property, setvalue); + + GError *error = NULL; + GVariant *value; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGW("BluetoothManage Not Init\n"); + return -1; + } + + if ((0!=g_strcmp0 (property, "Discoverable"))&& + (0!=g_strcmp0 (property, "Pairable"))&& + (0!=g_strcmp0 (property, "Powered"))) + { + LOGD("Invalid value\n"); + return -1; + } + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, FREEDESKTOP_PROPERTIES, + "Set", g_variant_new("(ssv)", ADAPTER_INTERFACE, + property, g_variant_new("b", setvalue)), + NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + if (NULL == value) { + LOGW ("Error : %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + + return 0; +} + + +/* + * Call the Bluez Adapter Method "StartDiscovery" + * If success return 0, else return -1; + */ +int adapter_start_discovery() +{ + LOGD("\n"); + + GError *error = NULL; + GVariant *value = NULL; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGW("BluetoothManage Not Init\n"); + return -1; + } + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, ADAPTER_INTERFACE, "StartDiscovery", + NULL, NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s\n", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; +} + +/* + * Call the Bluez Adapter Method "StopDiscovery" + * If success return 0, else return -1; + */ +int adapter_stop_discovery() +{ + LOGD("\n"); + + GError *error = NULL; + GVariant *value = NULL; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGW("BluetoothManage Not Init\n"); + return -1; + } + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, ADAPTER_INTERFACE, "StopDiscovery", + NULL, NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s\n", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + + return 0; +} + +/* + * Call the Bluez Adapter Method "RemoveDevice" + * If success return 0, else return -1; + */ +int adapter_remove_device(const gchar* bdaddr) +{ + LOGD("\n%s\n",bdaddr); + + struct btd_device * device; + gchar *path; + GError *error = NULL; + GVariant *value; + + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGW("BluetoothManage Not Init\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + ADAPTER_PATH, ADAPTER_INTERFACE, "RemoveDevice", + g_variant_new("(o)", path), NULL, + G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; + +} + + +/* + * Get the copy of device list. + */ +GSList* adapter_get_devices_list() +{ + GSList* tmp; + devices_list_lock(); + tmp = g_slist_copy_deep (BluetoothManage.device, + (GCopyFunc)device_copy, NULL); + devices_list_unlock(); + return tmp; +} + +/* + * free device list. + */ +void adapter_devices_list_free(GSList* list) +{ + if (NULL != list) + g_slist_free_full(list,(GDestroyNotify)device_free); + +} + +/* + * device_pair callback + */ +void device_pair_done_cb(GDBusConnection *source_object, + GAsyncResult *res, + gpointer user_data) +{ + LOGD("\n"); + g_dbus_connection_call_finish (source_object, res, NULL); + +} + +/* + * send pairing command + * If success return 0, else return -1; + */ +int device_pair(const gchar * bdaddr) +{ + LOGD("\n%s\n",bdaddr); + + struct btd_device * device; + gchar *path; + GError *error = NULL; + GVariant *value; + + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + +#if 0 + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, DEVICE_INTERFACE, "Pair", + NULL, NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); +#else + + g_dbus_connection_call(cli.system_conn, BLUEZ_SERVICE, + path, DEVICE_INTERFACE, "Pair", + NULL, NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, + (GAsyncReadyCallback)device_pair_done_cb, NULL); + + g_free(path); +#endif + return 0; + +} + +/* + * send cancel pairing command + * If success return 0, else return -1; + */ +int device_cancelPairing(const gchar * bdaddr) +{ + LOGD("\n%s\n",bdaddr); + + struct btd_device * device; + gchar *path; + GError *error = NULL; + GVariant *value; + + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, DEVICE_INTERFACE, "CancelPairing", + NULL, NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; + +} +/* + * send connect command + * If success return 0, else return -1; + */ +int device_connect(const gchar * bdaddr, const gchar * uuid) +{ + LOGD("\n%s\n",bdaddr); + + struct btd_device * device; + gchar *path; + GError *error = NULL; + GVariant *value; + + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, DEVICE_INTERFACE, uuid ? "ConnectProfile" : "Connect", + uuid ? g_variant_new("(s)", uuid) : NULL, + NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; + +} + +/* + * send disconnect command + * If success return 0, else return -1; + */ +int device_disconnect(const gchar* bdaddr, const gchar *uuid) +{ + LOGD("\n%s\n",bdaddr); + + struct btd_device * device; + gchar *path; + GError *error = NULL; + GVariant *value; + + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, DEVICE_INTERFACE, uuid ? "DisconnectProfile" : "Disconnect", + uuid ? g_variant_new("(s)", uuid) : NULL, + NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + return 0; +} + +/* + * set remote device property + * If success return 0, else return -1; + */ +int device_set_property(const char * bdaddr, const char *property_name, + const char *property_value) +{ + LOGD("\n%s-%s-%s\n",bdaddr,property_name,property_value); + + GError *error = NULL; + GVariant *ret; + struct btd_device * device; + gchar *path; + gboolean value; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGD("BluetoothManage Not Init\n"); + return -1; + } + + //Only support set "Trusted" + if (strcmp(property_name, "Trusted")) { + LOGD("Not support property name\n"); + return -1; + } + + if (atoi(property_value) == 1 || !strcasecmp(property_value, "true")) { + value = TRUE; + } else if (atoi(property_value) == 0 + || !strcasecmp(property_value, "false")) { + value = FALSE; + } else { + LOGD("Not support property value\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + ret = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, FREEDESKTOP_PROPERTIES, "Set", + g_variant_new("(ssv)", DEVICE_INTERFACE, property_name, + g_variant_new("b", value)), NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + g_free(path); + + if (NULL == ret) { + LOGW ("Error getting object manager client: %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(ret); + return 0; +} + +/* + * call remote device avrcp method + * Only support controls (Play, Pause, Stop, Previous, Next) + * If success return 0, else return -1; + */ +int device_call_avrcp_method(const gchar* bdaddr, const gchar* method) +{ + LOGD("device:%s,value:%d\n", bdaddr, method); + + struct btd_device * device; + GError *error = NULL; + GVariant *value; + gchar *path; + + if (FALSE == BluetoothManage_InitFlag_Get()) { + LOGW("BluetoothManage Not Init\n"); + return -1; + } + + if ((0!=g_strcmp0 (method, "Play"))&& + (0!=g_strcmp0 (method, "Pause"))&& + (0!=g_strcmp0 (method, "Stop"))&& + (0!=g_strcmp0 (method, "Previous"))&& + (0!=g_strcmp0 (method, "Next"))) + { + LOGD("Invalid method\n"); + return -1; + } + + devices_list_lock(); + device = devices_list_find_device_by_bdaddr(bdaddr); + + if (NULL == device) { + devices_list_unlock(); + LOGD("not find device\n"); + return -1; + } + path = g_strdup(device->path); + devices_list_unlock(); + + value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, + path, MEDIA_CONTROL1_INTERFACE, + method, NULL, NULL, + G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, + NULL, &error); + + g_free(path); + + if (NULL == value) { + LOGW ("Error : %s", error->message); + g_error_free(error); + return -1; + } + + g_variant_unref(value); + + return 0; +} + + +/* + * Stops the GMainLoop + */ +int BluetoothManagerQuit() +{ + LOGD("\n"); + + if (FALSE == BluetoothManage.inited ) + { + LOGD("BluetoothManage Not init\n"); + return -1; + } + + if(cli.clientloop){ + g_main_loop_quit(cli.clientloop); + } + + OfonoManagerQuit(); + BluezManagerQuit(); + stop_agent(); + + devices_list_lock(); + devices_list_cleanup(); + devices_list_unlock(); + + + g_mutex_clear (&(BluetoothManage.m)); + + g_object_unref(cli.system_conn); + g_object_unref(cli.session_conn); + + if (logfp) + fclose(logfp); + logfp = NULL; + + BluetoothManage.inited = FALSE; + + return 0; +} + +/* + * Create Bluetooth Manager Thread + * Note: bluetooth-api shall do BluetoothManageInit() first before call other APIs. + * bluetooth-api shall register callback function + * Returns: 0 - success or other errors + */ +int BluetoothManagerInit() { + pthread_t thread_id; + + LOGD("\n"); + + if (TRUE == BluetoothManage.inited ) + { + LOGW("BluetoothManage already init\n"); + return -1; + } + + logfp = fopen("/var/log/BluetoothManager.log", "a+"); + + if (NULL == logfp) + { + openlog("BluetoothManager", LOG_CONS | LOG_PID, LOG_USER); + syslog(LOG_WARNING, "BluetoothManager create log file fail\n"); + closelog(); + } + + g_mutex_init(&(BluetoothManage.m)); + + pthread_create(&thread_id, NULL, bt_event_loop_thread, NULL); + //pthread_setname_np(thread_id, "BT_Manager"); + sleep(1); + + return 0; +} + +/* + * Register Bluetooth Manager Callback function + */ +void BindingAPIRegister(const Binding_RegisterCallback_t* pstRegisterCallback) +{ + if (NULL != pstRegisterCallback) + { + if (NULL != pstRegisterCallback->binding_device_added) + { + g_RegisterCallback.binding_device_added = + pstRegisterCallback->binding_device_added; + } + + if (NULL != pstRegisterCallback->binding_device_removed) + { + g_RegisterCallback.binding_device_removed = + pstRegisterCallback->binding_device_removed; + } + + if (NULL != pstRegisterCallback->binding_device_properties_changed) + { + g_RegisterCallback.binding_device_properties_changed = + pstRegisterCallback->binding_device_properties_changed; + } + + if (NULL != pstRegisterCallback->binding_request_confirmation) + { + g_RegisterCallback.binding_request_confirmation = + pstRegisterCallback->binding_request_confirmation; + } + } +} + +GError* setHMIStatus(enum btStates state) { + + gchar *iconString = NULL; + GDBusConnection *connection; + GVariant *params = NULL; + GVariant *message = NULL; + GError *error = NULL; + + if (state==INACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png"; + else if (state==ACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_On-01.png"; + else iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png"; + + connection = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); + + params = g_variant_new("(is)", HOMESCREEN_BT_ICON_POSITION, iconString); + + message = g_dbus_connection_call_sync(connection, HOMESCREEN_SERVICE, + HOMESCREEN_ICON_PATH, HOMESCREEN_ICON_INTERFACE, "setStatusIcon", params, + NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + if (error) { + printf("error: %s\n", error->message); + + return error; + } else { + return NULL; + } + +} + + diff --git a/binding-bluetooth/bluetooth-manager.h b/binding-bluetooth/bluetooth-manager.h new file mode 100644 index 0000000..b11b11d --- /dev/null +++ b/binding-bluetooth/bluetooth-manager.h @@ -0,0 +1,201 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#ifndef BLUEZ_MANAGER_H +#define BLUEZ_MANAGER_H + +#include +#include +#include + + /* Debug Trace Level */ +#define DT_LEVEL_ERROR (1 << 1) +#define DT_LEVEL_WARNING (1 << 2) +#define DT_LEVEL_NOTICE (1 << 3) +#define DT_LEVEL_INFO (1 << 4) +#define DT_LEVEL_DEBUG (1 << 5) +//#define _DEBUG + +#define LOGE(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_ERROR, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGW(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_WARNING, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGN(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_NOTICE, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGI(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_INFO, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) +#define LOGD(fmt, args...) \ + DebugTraceSendMsg(DT_LEVEL_DEBUG, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) + +#ifdef _DEBUG + #define _DEBUG_PRINT_DBUS + #define LOCAL_PRINT_DEBUG +#endif + +#ifdef LOCAL_PRINT_DEBUG +#define D_PRINTF(fmt, args...) \ + g_print("[DEBUG][%d:%s]"fmt, __LINE__, __FUNCTION__, ## args) +#define D_PRINTF_RAW(fmt, args...) \ + g_print(""fmt, ## args) +#else +#define D_PRINTF(fmt, args...) +#define D_PRINTF_RAW(fmt, args...) +#endif /* ifdef _DEBUG */ + +//service +#define AGENT_SERVICE "org.agent" + +//remote service +#define BLUEZ_SERVICE "org.bluez" +#define OFONO_SERVICE "org.ofono" +#define CLIENT_SERVICE "org.bluez.obex" + +//object path +#define OFONO_MANAGER_PATH "/" +#define BLUEZ_MANAGER_PATH "/" +#define AGENT_PATH "/org/bluez" +#define ADAPTER_PATH "/org/bluez/hci0" +#define OBEX_CLIENT_PATH "/org/bluez/obex" + + +//interface +#define ADAPTER_INTERFACE "org.bluez.Adapter1" +#define DEVICE_INTERFACE "org.bluez.Device1" +#define AGENT_MANAGER_INTERFACE "org.bluez.AgentManager1" +//#define SERVICE_INTERFACE "org.bluez.Service" +#define AGENT_INTERFACE "org.bluez.Agent" + +#define CLIENT_INTERFACE "org.bluez.obex.Client1" +#define TRANSFER_INTERFACE "org.bluez.obex.Transfer" +#define SESSION_INTERFACE "org.bluez.obex.Session" +#define OBEX_ERROR_INTERFACE "org.bluez.obex.Error" +#define BLUEZ_ERROR_INTERFACE "org.bluez.Error" +#define PBAP_INTERFACE "org.bluez.obex.PhonebookAccess" +#define MAP_INTERFACE "org.bluez.obex.MessageAccess" +#define MAP_MSG_INTERFACE "org.bluez.obex.Message" + +#define MEDIA_PLAYER_INTERFACE "org.bluez.MediaPlayer" +#define MEDIA_PLAYER1_INTERFACE "org.bluez.MediaPlayer1" +#define MEDIA_FOLDER_INTERFACE "org.bluez.MediaFolder" +#define MEDIA_ITEM_INTERFACE "org.bluez.MediaItem" +#define MEDIA_TRANSPORT_INTERFACE "org.bluez.MediaTransport" +#define MEDIA_TRANSPORT1_INTERFACE "org.bluez.MediaTransport1" +#define MEDIA_CONTROL1_INTERFACE "org.bluez.MediaControl1" + + +#define OFONO_HANDSFREE_INTERFACE "org.ofono.Handsfree" +#define OFONO_MANAGER_INTERFACE "org.ofono.Manager" +#define OFONO_MODEM_INTERFACE "org.ofono.Modem" +#define OFONO_VOICECALL_INTERFACE "org.ofono.VoiceCall" +#define OFONO_VOICECALL_MANAGER_INTERFACE "org.ofono.VoiceCallManager" +#define OFONO_NETWORK_REGISTRATION_INTERFACE "org.ofono.NetworkRegistration" +#define OFONO_NETWORK_OPERATOR_INTERFACE "org.ofono.NetworkOperator" +#define OFONO_CALL_VOLUME_INTERFACE "org.ofono.CallVolume" + +#define FREEDESKTOP_INTROSPECT "org.freedesktop.DBus.Introspectable" +#define FREEDESKTOP_PROPERTIES "org.freedesktop.DBus.Properties" +#define FREEDESKTOP_OBJECTMANAGER "org.freedesktop.DBus.ObjectManager" + +#define HOMESCREEN_SERVICE "org.agl.homescreen" +#define HOMESCREEN_ICON_INTERFACE "org.agl.statusbar" +#define HOMESCREEN_ICON_PATH "/StatusBar" +#define HOMESCREEN_BT_ICON_POSITION 1 + +#define DBUS_REPLY_TIMEOUT (120 * 1000) +#define DBUS_REPLY_TIMEOUT_SHORT (10 * 1000) + +#define ERROR_BLUEZ_REJECT "org.bluez.Error.Rejected" +#define ERROR_BLUEZ_CANCELED "org.bluez.Error.Canceled" +#if 0 +void DebugTraceSendMsg(int level, gchar* message); +#else + +typedef struct _client +{ + GDBusConnection *system_conn; + GDBusConnection *session_conn; + GMainLoop *clientloop; +} Client; + +//Bluetooth Device Properties +struct btd_device { + gchar *path; + gchar *bdaddr; + gchar *name; + gchar *avrcp_title; + gchar *avrcp_artist; + gchar *avrcp_status; + gchar *transport_state; + guint32 avrcp_duration; + guint32 avrcp_position; + guint16 transport_volume; + gboolean paired; + gboolean trusted; + gboolean connected; + gboolean avconnected; + gboolean hfpconnected; + GList *uuids; +}; + +typedef struct { + gboolean inited; + GMutex m; + GSList * device; +} stBluetoothManage; + +typedef struct tagBinding_RegisterCallback +{ + void (*binding_device_added)(struct btd_device *BDdevice); + void (*binding_device_removed)(struct btd_device *BDdevice); + void (*binding_device_properties_changed)(struct btd_device *BDdevice); + gboolean (*binding_request_confirmation)(const gchar *device, guint passkey); +}Binding_RegisterCallback_t; + +enum btStates {INACTIVE, ACTIVE}; + +void DebugTraceSendMsg(int level, gchar* message); + +/* ------ PUBLIC PLUGIN FUNCTIONS --------- */ +void BindingAPIRegister(const Binding_RegisterCallback_t* pstRegisterCallback); +int BluetoothManagerInit(void); +int BluetoothManagerQuit(void); + +GSList* adapter_get_devices_list() ; +void adapter_devices_list_free(GSList* list) ; + +int adapter_set_powered(gboolean value); +int adapter_get_powered(gboolean *value); +//int adapter_set_discoverable(gboolean value); +int adapter_start_discovery(); +int adapter_stop_discovery(); +int adapter_remove_device(const gchar *addr); +int device_pair(const gchar * addr); +int device_cancelPairing(const gchar * bdaddr); +int device_connect(const gchar *addr, const gchar *uuid); +int device_disconnect(const gchar *addr, const gchar *uuid); +int device_set_property(const gchar * bdaddr, const gchar *property, const gchar *value); +int device_call_avrcp_method(const gchar* device, const gchar* method); + +int adapter_set_property(const gchar* property, gboolean value) ; + +GError* setHMIStatus(enum btStates); + +#endif +#endif /* BLUETOOTH_MANAGER_H */ + + +/****************************** The End Of File ******************************/ + diff --git a/binding-bluetooth/bluez-client.c b/binding-bluetooth/bluez-client.c new file mode 100644 index 0000000..d078d06 --- /dev/null +++ b/binding-bluetooth/bluez-client.c @@ -0,0 +1,966 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lib_bluez.h" +#include "bluez-client.h" + +#ifdef BLUEZ_THREAD +static GMainLoop *BluezLoop; +#endif +static Bluez_RegisterCallback_t bluez_RegisterCallback = { 0 }; +static stBluezManage BluezManage = { 0 }; + + +/* ------ LOCAL FUNCTIONS --------- */ + +/* + * make a copy of each element + * And, to entirely free the new btd_device, you could do: device_free + */ +static struct bt_device *bluez_device_copy(struct bt_device* device) +{ + struct bt_device * temp; + + if (NULL == device) { + return NULL; + } + + temp = g_malloc0(sizeof(struct bt_device)); + temp->path = g_strdup(device->path); + temp->bdaddr = g_strdup(device->bdaddr); + temp->name = g_strdup(device->name); + temp->alias = g_strdup(device->alias); + temp->paired = device->paired; + temp->trusted = device->trusted; + temp->blocked = device->blocked; + temp->connected = device->connected; + temp->avconnected = device->avconnected; + temp->legacypairing = device->legacypairing; + temp->rssi = device->rssi; + temp->uuids = g_list_copy(device->uuids); + + return temp; +} + +/* + * Frees all of the memory + */ +static void bluez_device_free(struct bt_device* device) +{ + + if (NULL == device) { + return ; + } + D_PRINTF("device %p\n",device); + if (device->path) { + D_PRINTF("path:%s\n",device->path); + g_free(device->path); + device->path = NULL; + } + if (device->bdaddr) { + D_PRINTF("bdaddr:%s\n",device->bdaddr); + g_free(device->bdaddr); + device->bdaddr = NULL; + } + if (device->name) { + D_PRINTF("name:%s\n",device->name); + g_free(device->name); + device->name = NULL; + } + if (device->alias) { + D_PRINTF("alias:%s\n",device->alias); + g_free(device->alias); + device->alias = NULL; + } + + if (device->uuids){ + D_PRINTF("uuids xxx\n"); + g_list_free_full(device->uuids, g_free); + device->uuids = NULL; + } + + g_free(device); + +} + +#ifdef BLUEZ_BD_LIST + +static void bluez_devices_list_lock(void) +{ + g_mutex_lock(&(BluezManage.m)); +} + +static void bluez_devices_list_unlock(void) +{ + g_mutex_unlock(&(BluezManage.m)); +} + +static int bluez_device_path_cmp(struct bt_device * device, const gchar* pPath ) +{ + return g_strcmp0 (device->path, pPath); +} + +/* + * search device by path + * Returns the first found btd_device or NULL if it is not found + */ +static struct bt_device *bluez_devices_list_find_device_by_path(const gchar* pPath) +{ + GSList * temp; + + temp = g_slist_find_custom (BluezManage.device, pPath, + (GCompareFunc)bluez_device_path_cmp); + + if (temp) { + return temp->data; + } + + return NULL; + +} + + +static int bluez_device_bdaddr_cmp(struct bt_device * device, const gchar* pBDaddr ) +{ + return g_strcmp0 (device->bdaddr, pBDaddr); +} + +/* + * search device by path + * Returns the first found btd_device or NULL if it is not found + */ +static struct +bt_device *bluez_devices_list_find_device_by_bdaddr(const gchar* pBDaddr) +{ + GSList * temp; + + temp = g_slist_find_custom (BluezManage.device, pBDaddr, + (GCompareFunc)bluez_device_bdaddr_cmp); + + if (temp) { + return temp->data; + } + + return NULL; + +} + +/* + * remove all the devices + */ +static void bluez_devices_list_cleanup() +{ + LOGD("\n"); + GSList * temp = BluezManage.device; + while (temp) { + struct bt_device *BDdevice = temp->data; + temp = temp->next; + + BluezManage.device = g_slist_remove_all(BluezManage.device, + BDdevice); + + bluez_device_free(BDdevice); + } +} + +/* + * Get the copy of device list. + */ +GSList* bluez_devices_list_copy() +{ + GSList* tmp; + bluez_devices_list_lock(); + tmp = g_slist_copy_deep (BluezManage.device, + (GCopyFunc)bluez_device_copy, NULL); + bluez_devices_list_unlock(); + return tmp; +} + +#endif + +/* + * free device list. + */ +void bluez_devices_list_free(GSList* list) +{ + if (NULL != list) + g_slist_free_full(list,(GDestroyNotify)bluez_device_free); + +} + +/* + * update device from Interfcace org.bluez.Device1 properties + */ +static int +bluez_device1_properties_update(struct bt_device *device, GVariant *value) +{ + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + //gchar value_c = 0; + //guchar value_y = 0;//y guchar + gint16 value_n = 0;//n gint16 + //guint16 value_q = 0;//q guint16 + //gint32 value_i = 0;//i gint32 + //guint32 value_u = 0;//u guint32 + //gint64 value_x = 0;//x gint64 + //guint64 value_t = 0;//t guint64 + //gint32 value_h = 0;//h gint32 + //gdouble value_d = 0.0;//d gdouble + gchar *str; + + if (0==g_strcmp0(key,"Address")) { + g_variant_get(subValue, "s", &str ); + D_PRINTF("Address %s\n",str); + + if (device->bdaddr) + g_free (device->bdaddr); + + device->bdaddr = g_strdup(str); + + g_free (str); + str = NULL; + + }else if (0==g_strcmp0(key,"Name")) { + g_variant_get(subValue, "s", &str ); + D_PRINTF("Name %s\n",str); + + if (device->name) + g_free (device->name); + + device->name = g_strdup(str); + + g_free (str); + str = NULL; + + }else if (0==g_strcmp0(key,"Alias")) { + g_variant_get(subValue, "s", &str ); + D_PRINTF("Alias %s\n",str); + + if (device->alias) + g_free (device->alias); + + device->alias = g_strdup(str); + + g_free (str); + str = NULL; + }else if (0==g_strcmp0(key,"LegacyPairing")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("LegacyPairing %d\n",value_b); + device->legacypairing = value_b; + + }else if (0==g_strcmp0(key,"Paired")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Paired %d\n",value_b); + device->paired = value_b; + + }else if (0==g_strcmp0(key,"Trusted")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Trusted %d\n",value_b); + device->trusted = value_b; + + }else if (0==g_strcmp0(key,"Blocked")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Blocked %d\n",value_b); + device->blocked = value_b; + + }else if (0==g_strcmp0(key,"Connected")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Connected %d\n",value_b); + device->connected = value_b; + + }else if (0==g_strcmp0(key,"RSSI")) { + g_variant_get(subValue, "n", &value_n ); + D_PRINTF("RSSI %d\n",value_n); + device->rssi = value_n; + + }else if (0==g_strcmp0(key,"UUIDs")) { + GVariantIter iter; + gchar *val; + + //g_print ("type '%s'\n", g_variant_get_type_string (subValue)); + if (device->uuids) { + g_list_free_full(device->uuids, g_free); + } + + g_variant_iter_init (&iter, subValue); + while (g_variant_iter_next (&iter, "s", &val)) + { + device->uuids = g_list_append(device->uuids, g_strdup(val)); + } + } + } + + return 0; + +} + +/* + * update device from Interfcace org.bluez.MediaControl1 properties + */ +static int +bluez_mediacontrol1_properties_update(struct bt_device *device, GVariant *value) +{ + GVariantIter iter; + const gchar *key; + GVariant *subValue; + + if ((NULL==device) || (NULL==value)) + { + return -1; + } + + g_variant_iter_init (&iter, value); + while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) + { + //gchar *s = g_variant_print (subValue, TRUE); + //g_print (" %s -> %s\n", key, s); + //g_free (s); + + gboolean value_b = FALSE;//b gboolean + gchar *str; + + if (0==g_strcmp0(key,"Connected")) { + g_variant_get(subValue, "b", &value_b ); + D_PRINTF("Connected %d\n",value_b); + device->avconnected = value_b; + + }else if (0==g_strcmp0(key,"Player")) { + g_variant_get(subValue, "o", &str ); + D_PRINTF("Player Object %s\n",str); + + } + } + + return 0; + +} + +/* + * Get the device list + * Call GetManagedObjects + * Returns: 0 - success or other errors + */ +static GSList * bluez_get_devices_list() { + LOGD("\n"); + + GError *error = NULL; + GVariant *result = NULL; + GSList *newDeviceList = NULL; + + result = g_dbus_connection_call_sync(BluezManage.system_conn, + BLUEZ_SERVICE, BLUEZ_MANAGER_PATH, FREEDESKTOP_OBJECTMANAGER, + "GetManagedObjects", NULL, NULL, + G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); + + if (error) { + LOGW ("Error : %s\n", error->message); + g_error_free(error); + return NULL; + } + + GVariant *ArrayValue = NULL; + GVariantIter *ArrayValueIter; + GVariant *Value = NULL; + + g_variant_get(result, "(*)", &ArrayValue); + + g_variant_get(ArrayValue, "a*", &ArrayValueIter); + while (g_variant_iter_loop(ArrayValueIter, "*", &Value)) { + + GVariantIter dbus_object_iter; + GVariant *dbusObjecPath; + GVariant *dbusObjecInterfaces; + + gchar *pObjecPath = NULL; + struct bt_device *device = NULL; + + g_variant_iter_init(&dbus_object_iter, Value); + + //1st : DBus Object Path + dbusObjecPath = g_variant_iter_next_value(&dbus_object_iter); + + g_variant_get(dbusObjecPath, "o", &pObjecPath); + + LOGD("object path %s\n",pObjecPath); + //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx + if ((37 != strlen(pObjecPath)) + || (NULL == g_strrstr_len(pObjecPath, 19, + ADAPTER_PATH"/dev"))) { + g_free(pObjecPath); + pObjecPath = NULL; + g_variant_unref(dbusObjecPath); + continue; + } + device = g_malloc0(sizeof(struct bt_device)); + device->path = g_strdup(pObjecPath); + g_free(pObjecPath); + pObjecPath = NULL; + g_variant_unref(dbusObjecPath); + + LOGD("Found new device%s\n",device->path ); + + //2nd : DBus Interfaces under Object Path + dbusObjecInterfaces = g_variant_iter_next_value(&dbus_object_iter); + + GVariant *interfaces_value = NULL; + g_variant_lookup(dbusObjecInterfaces, DEVICE_INTERFACE, + "*", &interfaces_value); + + if (interfaces_value) + { + bluez_device1_properties_update(device, interfaces_value); + + g_variant_unref (interfaces_value); + interfaces_value = NULL; + } + + g_variant_lookup(dbusObjecInterfaces, MEDIA_CONTROL1_INTERFACE, + "*", &interfaces_value); + + if (interfaces_value) + { + bluez_mediacontrol1_properties_update(device, interfaces_value); + + g_variant_unref (interfaces_value); + interfaces_value = NULL; + } + + g_variant_unref(dbusObjecInterfaces); + + //newDeviceList = g_slist_prepend(newDeviceList, device); + newDeviceList = g_slist_append(newDeviceList, device); + + + } + + g_variant_iter_free(ArrayValueIter); + g_variant_unref(ArrayValue); + + g_variant_unref(result); + + return newDeviceList; +} + + + +/* + * notify::name-owner callback function + */ +static void on_notify_name_owner (GObject *object, + GParamSpec *pspec, + gpointer user_data) +{ +#ifdef _DEBUG_PRINT_DBUS + GDBusObjectManagerClient *manager = G_DBUS_OBJECT_MANAGER_CLIENT (object); + gchar *name_owner; + + name_owner = g_dbus_object_manager_client_get_name_owner (manager); + g_print ("name-owner: %s\n", name_owner); + g_free (name_owner); +#endif +} + +/* + * object_added callback function + */ +static void on_object_added (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data) +{ +#ifdef _DEBUG_PRINT_DBUS + gchar *owner; + owner = g_dbus_object_manager_client_get_name_owner ( + G_DBUS_OBJECT_MANAGER_CLIENT (manager)); + g_print ("Added object at %s (owner %s)\n", + g_dbus_object_get_object_path (object), owner); + g_free (owner); +#endif + + + const gchar *dbusObjecPath; + GError *error = NULL; + GVariant *value = NULL; + struct bt_device *device; + + dbusObjecPath = g_dbus_object_get_object_path (object); + + LOGD("%s\n", dbusObjecPath); + + //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx + if ((37 != strlen(dbusObjecPath)) + || (NULL == g_strrstr_len(dbusObjecPath, 19,ADAPTER_PATH"/dev"))) { + return; + } + + device = g_malloc0(sizeof(struct bt_device)); + device->path = g_strdup(dbusObjecPath); + + value = g_dbus_connection_call_sync(BluezManage.system_conn, BLUEZ_SERVICE, + dbusObjecPath, FREEDESKTOP_PROPERTIES, + "GetAll", g_variant_new("(s)", DEVICE_INTERFACE), + NULL, G_DBUS_CALL_FLAGS_NONE, + DBUS_REPLY_TIMEOUT, NULL, &error); + + if (error) { + LOGW ("Error : %s\n", error->message); + g_error_free(error); + g_free(device->path); + g_free(device); + return; + } + + if (value) { + GVariant *subValue; + g_variant_get(value, "(*)", &subValue); + + bluez_device1_properties_update(device, subValue); + + g_variant_unref (subValue); + g_variant_unref(value); + } + +#ifdef BLUEZ_BD_LIST + + bluez_devices_list_lock(); + + //BluezManage.device = g_slist_prepend(BluezManage.device, device); + BluezManage.device = g_slist_append(BluezManage.device, device); + + if (NULL != bluez_RegisterCallback.device_added) + { + bluez_RegisterCallback.device_added(device); + } + + bluez_devices_list_unlock(); +#else + + if (NULL != bluez_RegisterCallback.device_added) + { + bluez_RegisterCallback.device_added(device); + } + bluez_device_free(device); + +#endif +} + +/* + * object-removed callback function + */ +static void on_object_removed (GDBusObjectManager *manager, + GDBusObject *object, + gpointer user_data) +{ +#ifdef _DEBUG_PRINT_DBUS + gchar *owner; + + owner = g_dbus_object_manager_client_get_name_owner ( + G_DBUS_OBJECT_MANAGER_CLIENT (manager)); + g_print ("Removed object at %s (owner %s)\n", + g_dbus_object_get_object_path (object), owner); + g_free (owner); +#endif + + const gchar *dbusObjecPath; + //int ret; + + + dbusObjecPath = g_dbus_object_get_object_path (object); + + if ((37 != strlen(dbusObjecPath)) + || (NULL == g_strrstr_len(dbusObjecPath, 19,ADAPTER_PATH"/dev"))) { + return; + } + + if (NULL != bluez_RegisterCallback.device_removed) + { + bluez_RegisterCallback.device_removed(dbusObjecPath); + } + LOGD("%s\n", dbusObjecPath); +#ifdef BLUEZ_BD_LIST + struct bt_device *device; + + bluez_devices_list_lock(); + + device = bluez_devices_list_find_device_by_path(dbusObjecPath); + + if (device) { + LOGD("Path :%s.\n", dbusObjecPath); + BluezManage.device = g_slist_remove_all(BluezManage.device, + device); + + bluez_device_free(device); + } + + bluez_devices_list_unlock(); +#endif + +} + +/* + * BLUEZ interface-proxy-properties-changed callback function + */ +static void +on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager, + GDBusObjectProxy *object_proxy, + GDBusProxy *interface_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties, + gpointer user_data) +{ + const gchar *pObjecPath; + const gchar *pInterface; + + pObjecPath = g_dbus_object_get_object_path (G_DBUS_OBJECT (object_proxy)); + pInterface = g_dbus_proxy_get_interface_name (interface_proxy); + +#ifdef _DEBUG_PRINT_DBUS + gchar *s; + g_print ("Path:%s, Interface:%s\n",pObjecPath, pInterface); + g_print ("type '%s'\n", g_variant_get_type_string (changed_properties)); + s = g_variant_print (changed_properties, TRUE); + g_print (" %s\n", s); + g_free (s); +#endif + + //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx + + LOGD("%s\n",pObjecPath); + + if( (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) || + (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) || + (0 == g_strcmp0(pInterface, MEDIA_PLAYER1_INTERFACE)) || + (0 == g_strcmp0(pInterface, MEDIA_TRANSPORT1_INTERFACE))) { + + if (bluez_RegisterCallback.device_properties_changed) + bluez_RegisterCallback.device_properties_changed(pObjecPath, + pInterface, changed_properties); + + } + +#ifdef BLUEZ_BD_LIST + struct bt_device *device; + + if (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) { + + bluez_devices_list_lock(); + + device = bluez_devices_list_find_device_by_path(pObjecPath); + + bluez_device1_properties_update(device, changed_properties); + + bluez_devices_list_unlock(); + + } else if (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) { + + bluez_devices_list_lock(); + + device = bluez_devices_list_find_device_by_path(pObjecPath); + + bluez_mediacontrol1_properties_update(device, changed_properties); + + bluez_devices_list_unlock(); + } +#endif +} + +/* + * init cli dbus connection + * Returns: 0 - success or other errors + */ +static int bluez_manager_connect_to_dbus(void) +{ + GError *error = NULL; + + BluezManage.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); + + if (error) { + LOGE("Create System GDBusconnection fail\n"); + LOGE("Error:%s\n", error->message); + g_error_free(error); + + return -1; + } + + BluezManage.session_conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); + + if (error) { + LOGE("Create Session GDBusconnection fail\n"); + LOGE("Error:%s\n", error->message); + g_error_free(error); + + g_object_unref(BluezManage.system_conn); + + return -1; + } + + BluezManage.proxy = bluez_object_manager_client_new_for_bus_sync( + G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, BLUEZ_SERVICE, + BLUEZ_MANAGER_PATH, NULL, &error); + + if (error) { + LOGE("Create Bluez manager client fail\n"); + LOGE("Error:%s\n", error->message); + g_error_free(error); + + g_object_unref(BluezManage.system_conn); + g_object_unref(BluezManage.session_conn); + return -1; + } + + return 0; +} + + +/* + * register dbus callback function + * Returns: 0 - success or other errors + */ +static int bluez_manager_register_callback(void) +{ + + g_signal_connect (BluezManage.proxy, + "notify::name-owner", + G_CALLBACK (on_notify_name_owner), + NULL); + + g_signal_connect (BluezManage.proxy, + "object-added", + G_CALLBACK (on_object_added), + NULL); + + g_signal_connect (BluezManage.proxy, + "object-removed", + G_CALLBACK (on_object_removed), + NULL); + + g_signal_connect (BluezManage.proxy, + "interface-proxy-properties-changed", + G_CALLBACK (on_interface_proxy_properties_changed), + NULL); + + return 0; +} + +/* + * init bluez client + * Returns: 0 - success or other errors + */ +static int bluez_manager_int() +{ + int ret = 0; + + LOGD("\n"); + + ret = bluez_manager_connect_to_dbus(); + + if (ret){ + LOGE("Init Fail\n"); + return -1; + } + + bluez_manager_register_callback(); + +#ifdef BLUEZ_BD_LIST + + g_mutex_init(&(BluezManage.m)); + + BluezManage.device = bluez_get_devices_list(); + +#endif + + BluezManage.inited = TRUE; + + return 0; + +} + +#ifdef BLUEZ_THREAD +/* + * Bluetooth Manager Thread + * register callback function and create a new GMainLoop structure + */ +static void *bluez_event_loop_thread() +{ + int ret = 0; + + BluezLoop = g_main_loop_new(NULL, FALSE);; + + ret = bluez_manager_int(); + + if (0 == ret){ + LOGD("g_main_loop_run\n"); + g_main_loop_run(BluezLoop); + } + + g_main_loop_unref(BluezLoop); + LOGD("exit...\n"); +} +#endif + + +/* ------ PUBLIC FUNCTIONS --------- */ + + +/* + * Get the device list + * The list should free by FreeBluezDevicesList() + */ +GSList * GetBluezDevicesList(void) +{ + LOGD("\n"); + + GSList* newDeviceList = NULL; + + if (TRUE != BluezManage.inited) + { + LOGD("Bluez Manager is not inited\n"); + return NULL; + } + +#ifdef BLUEZ_BD_LIST + newDeviceList = bluez_devices_list_copy(); +#else + newDeviceList = bluez_get_devices_list(); +#endif + return newDeviceList; +} + +/* + * free device list. + */ +void FreeBluezDevicesList(GSList* list) +{ + bluez_devices_list_free(list); +} + +/* + * Stops the GMainLoop + */ +int BluezManagerQuit(void) +{ + LOGD("\n"); + + if (FALSE == BluezManage.inited) + { + LOGD("Bluez Manager is not inited\n"); + return -1; + } + +#ifdef BLUEZ_THREAD + g_main_loop_quit(BluezLoop); +#endif + + memset(&bluez_RegisterCallback, 0, sizeof(Bluez_RegisterCallback_t)); + + g_object_unref(BluezManage.proxy); + +#ifdef BLUEZ_BD_LIST + bluez_devices_list_lock(); + bluez_devices_list_cleanup(); + bluez_devices_list_unlock(); + + g_mutex_clear (&(BluezManage.m)); +#endif + + g_object_unref(BluezManage.system_conn); + g_object_unref(BluezManage.session_conn); + + BluezManage.inited = FALSE; + + return 0; +} + +/* + * Init Bluez Manager + */ +int BluezManagerInit() +{ + LOGD("\n"); + int ret = 0; + + + if (TRUE == BluezManage.inited) + { + LOGD("Bluez Manager is already inited\n"); + return -1; + } + +#ifdef BLUEZ_THREAD + + pthread_t thread_id; + pthread_create(&thread_id, NULL, bluez_event_loop_thread, NULL); + pthread_setname_np(thread_id, "Bluez_Manage"); + +#else + + ret = bluez_manager_int(); +#endif + + return ret; +} + +/* + * Register Bluez Manager Callback function + */ +void BluezDeviceAPIRegister(const Bluez_RegisterCallback_t* pstRegisterCallback) +{ + if (NULL != pstRegisterCallback) + { + if (NULL != pstRegisterCallback->device_added) + { + bluez_RegisterCallback.device_added = + pstRegisterCallback->device_added; + } + + if (NULL != pstRegisterCallback->device_removed) + { + bluez_RegisterCallback.device_removed = + pstRegisterCallback->device_removed; + } + + if (NULL != pstRegisterCallback->device_properties_changed) + { + bluez_RegisterCallback.device_properties_changed = + pstRegisterCallback->device_properties_changed; + } + } +} + + + diff --git a/binding-bluetooth/bluez-client.h b/binding-bluetooth/bluez-client.h new file mode 100644 index 0000000..17f82f0 --- /dev/null +++ b/binding-bluetooth/bluez-client.h @@ -0,0 +1,76 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +#ifndef BLUEZ_CLIENT_H +#define BLUEZ_CLIENT_H + +#include +#include +#include + +#include "lib_bluez.h" +#include "bluetooth-manager.h" + +//#define BLUEZ_THREAD +//#define BLUEZ_BD_LIST + +//Bluetooth Device Properties +struct bt_device { + gchar *path; + gchar *bdaddr; + gchar *name; + gchar *alias; + gboolean paired; + gboolean trusted; + gboolean blocked; + gboolean connected; + gboolean avconnected; + gboolean legacypairing; + gint16 rssi; + GList *uuids; +}; + +typedef struct { + gboolean inited; + #ifdef BLUEZ_BD_LIST + GMutex m; + GSList * device; + #endif + GDBusObjectManager *proxy; + GDBusConnection *system_conn; + GDBusConnection *session_conn; +} stBluezManage; + +typedef struct tagBluez_RegisterCallback +{ + void (*device_added)(struct bt_device *device); + void (*device_removed)(const gchar *path); + void (*device_properties_changed)(const gchar *pObjecPath, const gchar *pInterface, GVariant *value); +}Bluez_RegisterCallback_t; + +/* --- PUBLIC FUNCTIONS --- */ +void BluezDeviceAPIRegister(const Bluez_RegisterCallback_t* pstRegisterCallback); + +int BluezManagerInit(void) ; +int BluezManagerQuit(void) ; + +GSList * GetBluezDevicesList(void); +void FreeBluezDevicesList(GSList* list) ; + +#endif /* BLUEZ_CLIENT_H */ + + +/****************************** The End Of File ******************************/ + diff --git a/binding-bluetooth/export.map b/binding-bluetooth/export.map new file mode 100644 index 0000000..0ef1ac7 --- /dev/null +++ b/binding-bluetooth/export.map @@ -0,0 +1 @@ +{ global: afbBindingV1Register; local: *; }; diff --git a/binding-bluetooth/lib_agent.c b/binding-bluetooth/lib_agent.c new file mode 100644 index 0000000..6324dfb --- /dev/null +++ b/binding-bluetooth/lib_agent.c @@ -0,0 +1,2504 @@ +/* + * 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_agent.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.bluez.Agent1 + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:AGENTOrgBluezAgent1 + * @title: AGENTOrgBluezAgent1 + * @short_description: Generated C code for the org.bluez.Agent1 D-Bus interface + * + * This section contains code for working with the org.bluez.Agent1 D-Bus interface in C. + */ + +/* ---- Introspection data for org.bluez.Agent1 ---- */ + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_release = +{ + { + -1, + (gchar *) "Release", + NULL, + NULL, + NULL + }, + "handle-release", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_device, + NULL +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pincode = +{ + { + -1, + (gchar *) "pincode", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pincode, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_pin_code = +{ + { + -1, + (gchar *) "RequestPinCode", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_pointers, + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pointers, + NULL + }, + "handle-request-pin-code", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pincode = +{ + { + -1, + (gchar *) "pincode", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_device, + &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pincode, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_display_pin_code = +{ + { + -1, + (gchar *) "DisplayPinCode", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pointers, + NULL, + NULL + }, + "handle-display-pin-code", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_device, + NULL +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_passkey = +{ + { + -1, + (gchar *) "passkey", + (gchar *) "u", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_passkey, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_passkey = +{ + { + -1, + (gchar *) "RequestPasskey", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_pointers, + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_pointers, + NULL + }, + "handle-request-passkey", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_passkey = +{ + { + -1, + (gchar *) "passkey", + (gchar *) "u", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_entered = +{ + { + -1, + (gchar *) "entered", + (gchar *) "q", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_device, + &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_passkey, + &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_entered, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_display_passkey = +{ + { + -1, + (gchar *) "DisplayPasskey", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_pointers, + NULL, + NULL + }, + "handle-display-passkey", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_passkey = +{ + { + -1, + (gchar *) "passkey", + (gchar *) "u", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_device, + &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_passkey, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_confirmation = +{ + { + -1, + (gchar *) "RequestConfirmation", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_pointers, + NULL, + NULL + }, + "handle-request-confirmation", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_device, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_authorization = +{ + { + -1, + (gchar *) "RequestAuthorization", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_pointers, + NULL, + NULL + }, + "handle-request-authorization", + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_device = +{ + { + -1, + (gchar *) "device", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_uuid = +{ + { + -1, + (gchar *) "uuid", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_device, + &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_uuid, + NULL +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_authorize_service = +{ + { + -1, + (gchar *) "AuthorizeService", + (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_pointers, + NULL, + NULL + }, + "handle-authorize-service", + FALSE +}; + +static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_cancel = +{ + { + -1, + (gchar *) "Cancel", + NULL, + NULL, + NULL + }, + "handle-cancel", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _agent_org_bluez_agent1_method_info_pointers[] = +{ + &_agent_org_bluez_agent1_method_info_release, + &_agent_org_bluez_agent1_method_info_request_pin_code, + &_agent_org_bluez_agent1_method_info_display_pin_code, + &_agent_org_bluez_agent1_method_info_request_passkey, + &_agent_org_bluez_agent1_method_info_display_passkey, + &_agent_org_bluez_agent1_method_info_request_confirmation, + &_agent_org_bluez_agent1_method_info_request_authorization, + &_agent_org_bluez_agent1_method_info_authorize_service, + &_agent_org_bluez_agent1_method_info_cancel, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _agent_org_bluez_agent1_interface_info = +{ + { + -1, + (gchar *) "org.bluez.Agent1", + (GDBusMethodInfo **) &_agent_org_bluez_agent1_method_info_pointers, + NULL, + NULL, + NULL + }, + "org-bluez-agent1", +}; + + +/** + * agent_org_bluez_agent1_interface_info: + * + * Gets a machine-readable description of the org.bluez.Agent1 D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +agent_org_bluez_agent1_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_agent_org_bluez_agent1_interface_info.parent_struct; +} + +/** + * agent_org_bluez_agent1_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 #AGENTOrgBluezAgent1 interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +agent_org_bluez_agent1_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * AGENTOrgBluezAgent1: + * + * Abstract interface type for the D-Bus interface org.bluez.Agent1. + */ + +/** + * AGENTOrgBluezAgent1Iface: + * @parent_iface: The parent interface. + * @handle_authorize_service: Handler for the #AGENTOrgBluezAgent1::handle-authorize-service signal. + * @handle_cancel: Handler for the #AGENTOrgBluezAgent1::handle-cancel signal. + * @handle_display_passkey: Handler for the #AGENTOrgBluezAgent1::handle-display-passkey signal. + * @handle_display_pin_code: Handler for the #AGENTOrgBluezAgent1::handle-display-pin-code signal. + * @handle_release: Handler for the #AGENTOrgBluezAgent1::handle-release signal. + * @handle_request_authorization: Handler for the #AGENTOrgBluezAgent1::handle-request-authorization signal. + * @handle_request_confirmation: Handler for the #AGENTOrgBluezAgent1::handle-request-confirmation signal. + * @handle_request_passkey: Handler for the #AGENTOrgBluezAgent1::handle-request-passkey signal. + * @handle_request_pin_code: Handler for the #AGENTOrgBluezAgent1::handle-request-pin-code signal. + * + * Virtual table for the D-Bus interface org.bluez.Agent1. + */ + +typedef AGENTOrgBluezAgent1Iface AGENTOrgBluezAgent1Interface; +G_DEFINE_INTERFACE (AGENTOrgBluezAgent1, agent_org_bluez_agent1, G_TYPE_OBJECT); + +static void +agent_org_bluez_agent1_default_init (AGENTOrgBluezAgent1Iface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * AGENTOrgBluezAgent1::handle-release: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the Release() 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 agent_org_bluez_agent1_complete_release() 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", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_release), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /** + * AGENTOrgBluezAgent1::handle-request-pin-code: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the RequestPinCode() 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 agent_org_bluez_agent1_complete_request_pin_code() 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-pin-code", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_pin_code), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + + /** + * AGENTOrgBluezAgent1::handle-display-pin-code: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * @arg_pincode: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the DisplayPinCode() 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 agent_org_bluez_agent1_complete_display_pin_code() 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-display-pin-code", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_display_pin_code), + 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); + + /** + * AGENTOrgBluezAgent1::handle-request-passkey: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the RequestPasskey() 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 agent_org_bluez_agent1_complete_request_passkey() 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-passkey", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_passkey), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + + /** + * AGENTOrgBluezAgent1::handle-display-passkey: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * @arg_passkey: Argument passed by remote caller. + * @arg_entered: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the DisplayPasskey() 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 agent_org_bluez_agent1_complete_display_passkey() 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-display-passkey", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_display_passkey), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 4, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT); + + /** + * AGENTOrgBluezAgent1::handle-request-confirmation: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * @arg_passkey: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the RequestConfirmation() 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 agent_org_bluez_agent1_complete_request_confirmation() 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-confirmation", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_confirmation), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 3, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT); + + /** + * AGENTOrgBluezAgent1::handle-request-authorization: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the RequestAuthorization() 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 agent_org_bluez_agent1_complete_request_authorization() 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-authorization", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_authorization), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + + /** + * AGENTOrgBluezAgent1::handle-authorize-service: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * @arg_device: Argument passed by remote caller. + * @arg_uuid: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the AuthorizeService() 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 agent_org_bluez_agent1_complete_authorize_service() 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-authorize-service", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_authorize_service), + 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); + + /** + * AGENTOrgBluezAgent1::handle-cancel: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the Cancel() 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 agent_org_bluez_agent1_complete_cancel() 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-cancel", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_cancel), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + +} + +/** + * agent_org_bluez_agent1_call_release: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @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 Release() 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 agent_org_bluez_agent1_call_release_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_release_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_release ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Release", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_release_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_release(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_release(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_release_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_release_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Release() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_release() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_release_sync ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Release", + 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; +} + +/** + * agent_org_bluez_agent1_call_request_pin_code: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: 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 RequestPinCode() 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 agent_org_bluez_agent1_call_request_pin_code_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_request_pin_code_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_request_pin_code ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "RequestPinCode", + g_variant_new ("(o)", + arg_device), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_request_pin_code_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @out_pincode: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_pin_code(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_request_pin_code(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_pin_code_finish ( + AGENTOrgBluezAgent1 *proxy, + gchar **out_pincode, + 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_pincode); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * agent_org_bluez_agent1_call_request_pin_code_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @out_pincode: (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 RequestPinCode() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_request_pin_code() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_pin_code_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + gchar **out_pincode, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "RequestPinCode", + g_variant_new ("(o)", + arg_device), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(s)", + out_pincode); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * agent_org_bluez_agent1_call_display_pin_code: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_pincode: 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 DisplayPinCode() 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 agent_org_bluez_agent1_call_display_pin_code_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_display_pin_code_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_display_pin_code ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_pincode, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "DisplayPinCode", + g_variant_new ("(os)", + arg_device, + arg_pincode), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_display_pin_code_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_display_pin_code(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_display_pin_code(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_display_pin_code_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_display_pin_code_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_pincode: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the DisplayPinCode() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_display_pin_code() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_display_pin_code_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_pincode, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "DisplayPinCode", + g_variant_new ("(os)", + arg_device, + arg_pincode), + 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; +} + +/** + * agent_org_bluez_agent1_call_request_passkey: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: 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 RequestPasskey() 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 agent_org_bluez_agent1_call_request_passkey_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_request_passkey_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_request_passkey ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "RequestPasskey", + g_variant_new ("(o)", + arg_device), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_request_passkey_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @out_passkey: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_passkey(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_request_passkey(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_passkey_finish ( + AGENTOrgBluezAgent1 *proxy, + guint *out_passkey, + 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, + "(u)", + out_passkey); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * agent_org_bluez_agent1_call_request_passkey_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @out_passkey: (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 RequestPasskey() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_request_passkey() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_passkey_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint *out_passkey, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "RequestPasskey", + g_variant_new ("(o)", + arg_device), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(u)", + out_passkey); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * agent_org_bluez_agent1_call_display_passkey: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_passkey: Argument to pass with the method invocation. + * @arg_entered: 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 DisplayPasskey() 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 agent_org_bluez_agent1_call_display_passkey_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_display_passkey_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_display_passkey ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + guint16 arg_entered, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "DisplayPasskey", + g_variant_new ("(ouq)", + arg_device, + arg_passkey, + arg_entered), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_display_passkey_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_display_passkey(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_display_passkey(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_display_passkey_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_display_passkey_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_passkey: Argument to pass with the method invocation. + * @arg_entered: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the DisplayPasskey() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_display_passkey() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_display_passkey_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + guint16 arg_entered, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "DisplayPasskey", + g_variant_new ("(ouq)", + arg_device, + arg_passkey, + arg_entered), + 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; +} + +/** + * agent_org_bluez_agent1_call_request_confirmation: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_passkey: 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 RequestConfirmation() 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 agent_org_bluez_agent1_call_request_confirmation_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_request_confirmation_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_request_confirmation ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "RequestConfirmation", + g_variant_new ("(ou)", + arg_device, + arg_passkey), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_request_confirmation_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_confirmation(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_request_confirmation(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_confirmation_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_request_confirmation_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_passkey: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the RequestConfirmation() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_request_confirmation() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_confirmation_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "RequestConfirmation", + g_variant_new ("(ou)", + arg_device, + arg_passkey), + 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; +} + +/** + * agent_org_bluez_agent1_call_request_authorization: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: 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 RequestAuthorization() 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 agent_org_bluez_agent1_call_request_authorization_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_request_authorization_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_request_authorization ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "RequestAuthorization", + g_variant_new ("(o)", + arg_device), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_request_authorization_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_authorization(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_request_authorization(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_authorization_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_request_authorization_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the RequestAuthorization() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_request_authorization() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_request_authorization_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "RequestAuthorization", + g_variant_new ("(o)", + arg_device), + 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; +} + +/** + * agent_org_bluez_agent1_call_authorize_service: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_uuid: 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 AuthorizeService() 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 agent_org_bluez_agent1_call_authorize_service_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_authorize_service_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_authorize_service ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_uuid, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "AuthorizeService", + g_variant_new ("(os)", + arg_device, + arg_uuid), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_authorize_service_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_authorize_service(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_authorize_service(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_authorize_service_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_authorize_service_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @arg_device: Argument to pass with the method invocation. + * @arg_uuid: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the AuthorizeService() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_authorize_service() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_authorize_service_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_uuid, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "AuthorizeService", + g_variant_new ("(os)", + arg_device, + arg_uuid), + 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; +} + +/** + * agent_org_bluez_agent1_call_cancel: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @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 Cancel() 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 agent_org_bluez_agent1_call_cancel_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_call_cancel_sync() for the synchronous, blocking version of this method. + */ +void +agent_org_bluez_agent1_call_cancel ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Cancel", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * agent_org_bluez_agent1_call_cancel_finish: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_cancel(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with agent_org_bluez_agent1_call_cancel(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_cancel_finish ( + AGENTOrgBluezAgent1 *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; +} + +/** + * agent_org_bluez_agent1_call_cancel_sync: + * @proxy: A #AGENTOrgBluezAgent1Proxy. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Cancel() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_call_cancel() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +agent_org_bluez_agent1_call_cancel_sync ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Cancel", + 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; +} + +/** + * agent_org_bluez_agent1_complete_release: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Release() 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 +agent_org_bluez_agent1_complete_release ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_request_pin_code: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @pincode: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the RequestPinCode() 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 +agent_org_bluez_agent1_complete_request_pin_code ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *pincode) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", + pincode)); +} + +/** + * agent_org_bluez_agent1_complete_display_pin_code: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the DisplayPinCode() 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 +agent_org_bluez_agent1_complete_display_pin_code ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_request_passkey: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @passkey: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the RequestPasskey() 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 +agent_org_bluez_agent1_complete_request_passkey ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + guint passkey) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(u)", + passkey)); +} + +/** + * agent_org_bluez_agent1_complete_display_passkey: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the DisplayPasskey() 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 +agent_org_bluez_agent1_complete_display_passkey ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_request_confirmation: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the RequestConfirmation() 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 +agent_org_bluez_agent1_complete_request_confirmation ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_request_authorization: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the RequestAuthorization() 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 +agent_org_bluez_agent1_complete_request_authorization ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_authorize_service: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the AuthorizeService() 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 +agent_org_bluez_agent1_complete_authorize_service ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * agent_org_bluez_agent1_complete_cancel: + * @object: A #AGENTOrgBluezAgent1. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Cancel() 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 +agent_org_bluez_agent1_complete_cancel ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/* ------------------------------------------------------------------------ */ + +/** + * AGENTOrgBluezAgent1Proxy: + * + * The #AGENTOrgBluezAgent1Proxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * AGENTOrgBluezAgent1ProxyClass: + * @parent_class: The parent class. + * + * Class structure for #AGENTOrgBluezAgent1Proxy. + */ + +struct _AGENTOrgBluezAgent1ProxyPrivate +{ + GData *qdata; +}; + +static void agent_org_bluez_agent1_proxy_iface_init (AGENTOrgBluezAgent1Iface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Proxy, agent_org_bluez_agent1_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (AGENTOrgBluezAgent1Proxy) + G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Proxy, agent_org_bluez_agent1_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_proxy_iface_init)); + +#endif +static void +agent_org_bluez_agent1_proxy_finalize (GObject *object) +{ + AGENTOrgBluezAgent1Proxy *proxy = AGENT_ORG_BLUEZ_AGENT1_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (agent_org_bluez_agent1_proxy_parent_class)->finalize (object); +} + +static void +agent_org_bluez_agent1_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +agent_org_bluez_agent1_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +agent_org_bluez_agent1_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 *) &_agent_org_bluez_agent1_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], AGENT_TYPE_ORG_BLUEZ_AGENT1); + 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, AGENT_TYPE_ORG_BLUEZ_AGENT1); + 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 +agent_org_bluez_agent1_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + AGENTOrgBluezAgent1Proxy *proxy = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 *) &_agent_org_bluez_agent1_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 +agent_org_bluez_agent1_proxy_init (AGENTOrgBluezAgent1Proxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = agent_org_bluez_agent1_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), agent_org_bluez_agent1_interface_info ()); +} + +static void +agent_org_bluez_agent1_proxy_class_init (AGENTOrgBluezAgent1ProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = agent_org_bluez_agent1_proxy_finalize; + gobject_class->get_property = agent_org_bluez_agent1_proxy_get_property; + gobject_class->set_property = agent_org_bluez_agent1_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = agent_org_bluez_agent1_proxy_g_signal; + proxy_class->g_properties_changed = agent_org_bluez_agent1_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (AGENTOrgBluezAgent1ProxyPrivate)); +#endif +} + +static void +agent_org_bluez_agent1_proxy_iface_init (AGENTOrgBluezAgent1Iface *iface) +{ +} + +/** + * agent_org_bluez_agent1_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.bluez.Agent1. 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 agent_org_bluez_agent1_proxy_new_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_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.bluez.Agent1", NULL); +} + +/** + * agent_org_bluez_agent1_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with agent_org_bluez_agent1_proxy_new(). + * + * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. + */ +AGENTOrgBluezAgent1 * +agent_org_bluez_agent1_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 AGENT_ORG_BLUEZ_AGENT1 (ret); + else + return NULL; +} + +/** + * agent_org_bluez_agent1_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.bluez.Agent1. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. + */ +AGENTOrgBluezAgent1 * +agent_org_bluez_agent1_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error) +{ + GInitable *ret; + ret = g_initable_new (AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.bluez.Agent1", NULL); + if (ret != NULL) + return AGENT_ORG_BLUEZ_AGENT1 (ret); + else + return NULL; +} + + +/** + * agent_org_bluez_agent1_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 agent_org_bluez_agent1_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 agent_org_bluez_agent1_proxy_new_for_bus_finish() to get the result of the operation. + * + * See agent_org_bluez_agent1_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_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.bluez.Agent1", NULL); +} + +/** + * agent_org_bluez_agent1_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with agent_org_bluez_agent1_proxy_new_for_bus(). + * + * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. + */ +AGENTOrgBluezAgent1 * +agent_org_bluez_agent1_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 AGENT_ORG_BLUEZ_AGENT1 (ret); + else + return NULL; +} + +/** + * agent_org_bluez_agent1_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 agent_org_bluez_agent1_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See agent_org_bluez_agent1_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. + */ +AGENTOrgBluezAgent1 * +agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.bluez.Agent1", NULL); + if (ret != NULL) + return AGENT_ORG_BLUEZ_AGENT1 (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * AGENTOrgBluezAgent1Skeleton: + * + * The #AGENTOrgBluezAgent1Skeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * AGENTOrgBluezAgent1SkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #AGENTOrgBluezAgent1Skeleton. + */ + +struct _AGENTOrgBluezAgent1SkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_agent_org_bluez_agent1_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) +{ + AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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], AGENT_TYPE_ORG_BLUEZ_AGENT1); + 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, AGENT_TYPE_ORG_BLUEZ_AGENT1); + 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 * +_agent_org_bluez_agent1_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) +{ + AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 +_agent_org_bluez_agent1_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) +{ + AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 _agent_org_bluez_agent1_skeleton_vtable = +{ + _agent_org_bluez_agent1_skeleton_handle_method_call, + _agent_org_bluez_agent1_skeleton_handle_get_property, + _agent_org_bluez_agent1_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +agent_org_bluez_agent1_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return agent_org_bluez_agent1_interface_info (); +} + +static GDBusInterfaceVTable * +agent_org_bluez_agent1_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_agent_org_bluez_agent1_skeleton_vtable; +} + +static GVariant * +agent_org_bluez_agent1_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_agent_org_bluez_agent1_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _agent_org_bluez_agent1_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _agent_org_bluez_agent1_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _agent_org_bluez_agent1_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.bluez.Agent1", 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 +agent_org_bluez_agent1_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void agent_org_bluez_agent1_skeleton_iface_init (AGENTOrgBluezAgent1Iface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Skeleton, agent_org_bluez_agent1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (AGENTOrgBluezAgent1Skeleton) + G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Skeleton, agent_org_bluez_agent1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_skeleton_iface_init)); + +#endif +static void +agent_org_bluez_agent1_skeleton_finalize (GObject *object) +{ + AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 (agent_org_bluez_agent1_skeleton_parent_class)->finalize (object); +} + +static void +agent_org_bluez_agent1_skeleton_init (AGENTOrgBluezAgent1Skeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = agent_org_bluez_agent1_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +agent_org_bluez_agent1_skeleton_class_init (AGENTOrgBluezAgent1SkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = agent_org_bluez_agent1_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = agent_org_bluez_agent1_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = agent_org_bluez_agent1_skeleton_dbus_interface_get_properties; + skeleton_class->flush = agent_org_bluez_agent1_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = agent_org_bluez_agent1_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (AGENTOrgBluezAgent1SkeletonPrivate)); +#endif +} + +static void +agent_org_bluez_agent1_skeleton_iface_init (AGENTOrgBluezAgent1Iface *iface) +{ +} + +/** + * agent_org_bluez_agent1_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.bluez.Agent1. + * + * Returns: (transfer full) (type AGENTOrgBluezAgent1Skeleton): The skeleton object. + */ +AGENTOrgBluezAgent1 * +agent_org_bluez_agent1_skeleton_new (void) +{ + return AGENT_ORG_BLUEZ_AGENT1 (g_object_new (AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, NULL)); +} + diff --git a/binding-bluetooth/lib_agent.h b/binding-bluetooth/lib_agent.h new file mode 100644 index 0000000..0a355ee --- /dev/null +++ b/binding-bluetooth/lib_agent.h @@ -0,0 +1,409 @@ +/* + * 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. + */ + +#ifndef __LIB_AGENT_H__ +#define __LIB_AGENT_H__ + +#include + +G_BEGIN_DECLS + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.bluez.Agent1 */ + +#define AGENT_TYPE_ORG_BLUEZ_AGENT1 (agent_org_bluez_agent1_get_type ()) +#define AGENT_ORG_BLUEZ_AGENT1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1, AGENTOrgBluezAgent1)) +#define AGENT_IS_ORG_BLUEZ_AGENT1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1)) +#define AGENT_ORG_BLUEZ_AGENT1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1, AGENTOrgBluezAgent1Iface)) + +struct _AGENTOrgBluezAgent1; +typedef struct _AGENTOrgBluezAgent1 AGENTOrgBluezAgent1; +typedef struct _AGENTOrgBluezAgent1Iface AGENTOrgBluezAgent1Iface; + +struct _AGENTOrgBluezAgent1Iface +{ + GTypeInterface parent_iface; + + gboolean (*handle_authorize_service) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device, + const gchar *arg_uuid); + + gboolean (*handle_cancel) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_display_passkey) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device, + guint arg_passkey, + guint16 arg_entered); + + gboolean (*handle_display_pin_code) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device, + const gchar *arg_pincode); + + gboolean (*handle_release) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_request_authorization) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device); + + gboolean (*handle_request_confirmation) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device, + guint arg_passkey); + + gboolean (*handle_request_passkey) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device); + + gboolean (*handle_request_pin_code) ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *arg_device); + +}; + +GType agent_org_bluez_agent1_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *agent_org_bluez_agent1_interface_info (void); +guint agent_org_bluez_agent1_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void agent_org_bluez_agent1_complete_release ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_request_pin_code ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + const gchar *pincode); + +void agent_org_bluez_agent1_complete_display_pin_code ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_request_passkey ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation, + guint passkey); + +void agent_org_bluez_agent1_complete_display_passkey ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_request_confirmation ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_request_authorization ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_authorize_service ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + +void agent_org_bluez_agent1_complete_cancel ( + AGENTOrgBluezAgent1 *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus method calls: */ +void agent_org_bluez_agent1_call_release ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_release_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_release_sync ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_request_pin_code ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_request_pin_code_finish ( + AGENTOrgBluezAgent1 *proxy, + gchar **out_pincode, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_request_pin_code_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + gchar **out_pincode, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_display_pin_code ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_pincode, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_display_pin_code_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_display_pin_code_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_pincode, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_request_passkey ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_request_passkey_finish ( + AGENTOrgBluezAgent1 *proxy, + guint *out_passkey, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_request_passkey_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint *out_passkey, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_display_passkey ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + guint16 arg_entered, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_display_passkey_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_display_passkey_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + guint16 arg_entered, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_request_confirmation ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_request_confirmation_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_request_confirmation_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + guint arg_passkey, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_request_authorization ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_request_authorization_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_request_authorization_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_authorize_service ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_uuid, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_authorize_service_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_authorize_service_sync ( + AGENTOrgBluezAgent1 *proxy, + const gchar *arg_device, + const gchar *arg_uuid, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_call_cancel ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean agent_org_bluez_agent1_call_cancel_finish ( + AGENTOrgBluezAgent1 *proxy, + GAsyncResult *res, + GError **error); + +gboolean agent_org_bluez_agent1_call_cancel_sync ( + AGENTOrgBluezAgent1 *proxy, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY (agent_org_bluez_agent1_proxy_get_type ()) +#define AGENT_ORG_BLUEZ_AGENT1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1Proxy)) +#define AGENT_ORG_BLUEZ_AGENT1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyClass)) +#define AGENT_ORG_BLUEZ_AGENT1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyClass)) +#define AGENT_IS_ORG_BLUEZ_AGENT1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY)) +#define AGENT_IS_ORG_BLUEZ_AGENT1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY)) + +typedef struct _AGENTOrgBluezAgent1Proxy AGENTOrgBluezAgent1Proxy; +typedef struct _AGENTOrgBluezAgent1ProxyClass AGENTOrgBluezAgent1ProxyClass; +typedef struct _AGENTOrgBluezAgent1ProxyPrivate AGENTOrgBluezAgent1ProxyPrivate; + +struct _AGENTOrgBluezAgent1Proxy +{ + /*< private >*/ + GDBusProxy parent_instance; + AGENTOrgBluezAgent1ProxyPrivate *priv; +}; + +struct _AGENTOrgBluezAgent1ProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType agent_org_bluez_agent1_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (AGENTOrgBluezAgent1Proxy, g_object_unref) +#endif + +void agent_org_bluez_agent1_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_finish ( + GAsyncResult *res, + GError **error); +AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void agent_org_bluez_agent1_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON (agent_org_bluez_agent1_skeleton_get_type ()) +#define AGENT_ORG_BLUEZ_AGENT1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1Skeleton)) +#define AGENT_ORG_BLUEZ_AGENT1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonClass)) +#define AGENT_ORG_BLUEZ_AGENT1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonClass)) +#define AGENT_IS_ORG_BLUEZ_AGENT1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON)) +#define AGENT_IS_ORG_BLUEZ_AGENT1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON)) + +typedef struct _AGENTOrgBluezAgent1Skeleton AGENTOrgBluezAgent1Skeleton; +typedef struct _AGENTOrgBluezAgent1SkeletonClass AGENTOrgBluezAgent1SkeletonClass; +typedef struct _AGENTOrgBluezAgent1SkeletonPrivate AGENTOrgBluezAgent1SkeletonPrivate; + +struct _AGENTOrgBluezAgent1Skeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + AGENTOrgBluezAgent1SkeletonPrivate *priv; +}; + +struct _AGENTOrgBluezAgent1SkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType agent_org_bluez_agent1_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (AGENTOrgBluezAgent1Skeleton, g_object_unref) +#endif + +AGENTOrgBluezAgent1 *agent_org_bluez_agent1_skeleton_new (void); + + +G_END_DECLS + +#endif /* __LIB_AGENT_H__ */ diff --git a/binding-bluetooth/lib_bluez.c b/binding-bluetooth/lib_bluez.c new file mode 100644 index 0000000..58d844d --- /dev/null +++ b/binding-bluetooth/lib_bluez.c @@ -0,0 +1,630 @@ +/* + * 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_bluez.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 Object, ObjectProxy and ObjectSkeleton + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:BLUEZObject + * @title: BLUEZObject + * @short_description: Specialized GDBusObject types + * + * This section contains the #BLUEZObject, #BLUEZObjectProxy, and #BLUEZObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. + */ + +/** + * BLUEZObject: + * + * The #BLUEZObject type is a specialized container of interfaces. + */ + +/** + * BLUEZObjectIface: + * @parent_iface: The parent interface. + * + * Virtual table for the #BLUEZObject interface. + */ + +typedef BLUEZObjectIface BLUEZObjectInterface; +G_DEFINE_INTERFACE_WITH_CODE (BLUEZObject, bluez_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT)); + +static void +bluez_object_default_init (BLUEZObjectIface *iface) +{ +} + + + +static void +bluez_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); +} + +/** + * BLUEZObjectProxy: + * + * The #BLUEZObjectProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * BLUEZObjectProxyClass: + * @parent_class: The parent class. + * + * Class structure for #BLUEZObjectProxy. + */ + +static void +bluez_object_proxy__bluez_object_iface_init (BLUEZObjectIface *iface G_GNUC_UNUSED) +{ +} + +static void +bluez_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = bluez_object_notify; + iface->interface_removed = bluez_object_notify; +} + + +G_DEFINE_TYPE_WITH_CODE (BLUEZObjectProxy, bluez_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, + G_IMPLEMENT_INTERFACE (BLUEZ_TYPE_OBJECT, bluez_object_proxy__bluez_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, bluez_object_proxy__g_dbus_object_iface_init)); + +static void +bluez_object_proxy_init (BLUEZObjectProxy *object G_GNUC_UNUSED) +{ +} + +static void +bluez_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 +bluez_object_proxy_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + BLUEZObjectProxy *object = BLUEZ_OBJECT_PROXY (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +bluez_object_proxy_class_init (BLUEZObjectProxyClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = bluez_object_proxy_set_property; + gobject_class->get_property = bluez_object_proxy_get_property; + +} + +/** + * bluez_object_proxy_new: + * @connection: A #GDBusConnection. + * @object_path: An object path. + * + * Creates a new proxy object. + * + * Returns: (transfer full): The proxy object. + */ +BLUEZObjectProxy * +bluez_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 BLUEZ_OBJECT_PROXY (g_object_new (BLUEZ_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); +} + +/** + * BLUEZObjectSkeleton: + * + * The #BLUEZObjectSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * BLUEZObjectSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #BLUEZObjectSkeleton. + */ + +static void +bluez_object_skeleton__bluez_object_iface_init (BLUEZObjectIface *iface G_GNUC_UNUSED) +{ +} + + +static void +bluez_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = bluez_object_notify; + iface->interface_removed = bluez_object_notify; +} + +G_DEFINE_TYPE_WITH_CODE (BLUEZObjectSkeleton, bluez_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, + G_IMPLEMENT_INTERFACE (BLUEZ_TYPE_OBJECT, bluez_object_skeleton__bluez_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, bluez_object_skeleton__g_dbus_object_iface_init)); + +static void +bluez_object_skeleton_init (BLUEZObjectSkeleton *object G_GNUC_UNUSED) +{ +} + +static void +bluez_object_skeleton_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + BLUEZObjectSkeleton *object = BLUEZ_OBJECT_SKELETON (gobject); + GDBusInterfaceSkeleton *interface; + + switch (prop_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +bluez_object_skeleton_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + BLUEZObjectSkeleton *object = BLUEZ_OBJECT_SKELETON (gobject); + GDBusInterface *interface; + + switch (prop_id) + { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +bluez_object_skeleton_class_init (BLUEZObjectSkeletonClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = bluez_object_skeleton_set_property; + gobject_class->get_property = bluez_object_skeleton_get_property; + +} + +/** + * bluez_object_skeleton_new: + * @object_path: An object path. + * + * Creates a new skeleton object. + * + * Returns: (transfer full): The skeleton object. + */ +BLUEZObjectSkeleton * +bluez_object_skeleton_new (const gchar *object_path) +{ + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return BLUEZ_OBJECT_SKELETON (g_object_new (BLUEZ_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); +} + + +/* ------------------------------------------------------------------------ + * Code for ObjectManager client + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:BLUEZObjectManagerClient + * @title: BLUEZObjectManagerClient + * @short_description: Generated GDBusObjectManagerClient type + * + * This section contains a #GDBusObjectManagerClient that uses bluez_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. + */ + +/** + * BLUEZObjectManagerClient: + * + * The #BLUEZObjectManagerClient structure contains only private data and should only be accessed using the provided API. + */ + +/** + * BLUEZObjectManagerClientClass: + * @parent_class: The parent class. + * + * Class structure for #BLUEZObjectManagerClient. + */ + +G_DEFINE_TYPE (BLUEZObjectManagerClient, bluez_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT); + +static void +bluez_object_manager_client_init (BLUEZObjectManagerClient *manager G_GNUC_UNUSED) +{ +} + +static void +bluez_object_manager_client_class_init (BLUEZObjectManagerClientClass *klass G_GNUC_UNUSED) +{ +} + +/** + * bluez_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 #BLUEZObjectProxy. + */ +GType +bluez_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 BLUEZ_TYPE_OBJECT_PROXY; + if (g_once_init_enter (&once_init_value)) + { + lookup_hash = g_hash_table_new (g_str_hash, g_str_equal); + 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; +} + +/** + * bluez_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 bluez_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 bluez_object_manager_client_new_finish() to get the result of the operation. + * + * See bluez_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. + */ +void +bluez_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 (BLUEZ_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", bluez_object_manager_client_get_proxy_type, NULL); +} + +/** + * bluez_object_manager_client_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to bluez_object_manager_client_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with bluez_object_manager_client_new(). + * + * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +bluez_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; +} + +/** + * bluez_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 bluez_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 bluez_object_manager_client_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +bluez_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 (BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", bluez_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + +/** + * bluez_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 bluez_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 bluez_object_manager_client_new_for_bus_finish() to get the result of the operation. + * + * See bluez_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +bluez_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 (BLUEZ_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", bluez_object_manager_client_get_proxy_type, NULL); +} + +/** + * bluez_object_manager_client_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to bluez_object_manager_client_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with bluez_object_manager_client_new_for_bus(). + * + * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +bluez_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; +} + +/** + * bluez_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 bluez_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See bluez_object_manager_client_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +bluez_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 (BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", bluez_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + diff --git a/binding-bluetooth/lib_bluez.h b/binding-bluetooth/lib_bluez.h new file mode 100644 index 0000000..1408bb2 --- /dev/null +++ b/binding-bluetooth/lib_bluez.h @@ -0,0 +1,170 @@ +/* + * 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. + */ + +#ifndef __LIB_BLUEZ_H__ +#define __LIB_BLUEZ_H__ + +#include + +G_BEGIN_DECLS + + +/* ---- */ + +#define BLUEZ_TYPE_OBJECT (bluez_object_get_type ()) +#define BLUEZ_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT, BLUEZObject)) +#define BLUEZ_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT)) +#define BLUEZ_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ_TYPE_OBJECT, BLUEZObject)) + +struct _BLUEZObject; +typedef struct _BLUEZObject BLUEZObject; +typedef struct _BLUEZObjectIface BLUEZObjectIface; + +struct _BLUEZObjectIface +{ + GTypeInterface parent_iface; +}; + +GType bluez_object_get_type (void) G_GNUC_CONST; + + +#define BLUEZ_TYPE_OBJECT_PROXY (bluez_object_proxy_get_type ()) +#define BLUEZ_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxy)) +#define BLUEZ_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxyClass)) +#define BLUEZ_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxyClass)) +#define BLUEZ_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_PROXY)) +#define BLUEZ_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_PROXY)) + +typedef struct _BLUEZObjectProxy BLUEZObjectProxy; +typedef struct _BLUEZObjectProxyClass BLUEZObjectProxyClass; +typedef struct _BLUEZObjectProxyPrivate BLUEZObjectProxyPrivate; + +struct _BLUEZObjectProxy +{ + /*< private >*/ + GDBusObjectProxy parent_instance; + BLUEZObjectProxyPrivate *priv; +}; + +struct _BLUEZObjectProxyClass +{ + GDBusObjectProxyClass parent_class; +}; + +GType bluez_object_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectProxy, g_object_unref) +#endif + +BLUEZObjectProxy *bluez_object_proxy_new (GDBusConnection *connection, const gchar *object_path); + +#define BLUEZ_TYPE_OBJECT_SKELETON (bluez_object_skeleton_get_type ()) +#define BLUEZ_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeleton)) +#define BLUEZ_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeletonClass)) +#define BLUEZ_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeletonClass)) +#define BLUEZ_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_SKELETON)) +#define BLUEZ_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_SKELETON)) + +typedef struct _BLUEZObjectSkeleton BLUEZObjectSkeleton; +typedef struct _BLUEZObjectSkeletonClass BLUEZObjectSkeletonClass; +typedef struct _BLUEZObjectSkeletonPrivate BLUEZObjectSkeletonPrivate; + +struct _BLUEZObjectSkeleton +{ + /*< private >*/ + GDBusObjectSkeleton parent_instance; + BLUEZObjectSkeletonPrivate *priv; +}; + +struct _BLUEZObjectSkeletonClass +{ + GDBusObjectSkeletonClass parent_class; +}; + +GType bluez_object_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectSkeleton, g_object_unref) +#endif + +BLUEZObjectSkeleton *bluez_object_skeleton_new (const gchar *object_path); + +/* ---- */ + +#define BLUEZ_TYPE_OBJECT_MANAGER_CLIENT (bluez_object_manager_client_get_type ()) +#define BLUEZ_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClient)) +#define BLUEZ_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClientClass)) +#define BLUEZ_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClientClass)) +#define BLUEZ_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT)) +#define BLUEZ_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT)) + +typedef struct _BLUEZObjectManagerClient BLUEZObjectManagerClient; +typedef struct _BLUEZObjectManagerClientClass BLUEZObjectManagerClientClass; +typedef struct _BLUEZObjectManagerClientPrivate BLUEZObjectManagerClientPrivate; + +struct _BLUEZObjectManagerClient +{ + /*< private >*/ + GDBusObjectManagerClient parent_instance; + BLUEZObjectManagerClientPrivate *priv; +}; + +struct _BLUEZObjectManagerClientClass +{ + GDBusObjectManagerClientClass parent_class; +}; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectManagerClient, g_object_unref) +#endif + +GType bluez_object_manager_client_get_type (void) G_GNUC_CONST; + +GType bluez_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); + +void bluez_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *bluez_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *bluez_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void bluez_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); +GDBusObjectManager *bluez_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *bluez_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +G_END_DECLS + +#endif /* __LIB_BLUEZ_H__ */ diff --git a/binding-bluetooth/lib_ofono.c b/binding-bluetooth/lib_ofono.c new file mode 100644 index 0000000..05ce89b --- /dev/null +++ b/binding-bluetooth/lib_ofono.c @@ -0,0 +1,5615 @@ +/* + * 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.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:OFONOOrgFreedesktopDBusIntrospectable + * @title: OFONOOrgFreedesktopDBusIntrospectable + * @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_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml = +{ + { + -1, + (gchar *) "xml", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers[] = +{ + &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_freedesktop_dbus_introspectable_method_info_introspect = +{ + { + -1, + (gchar *) "Introspect", + NULL, + (GDBusArgInfo **) &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers, + NULL + }, + "handle-introspect", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _ofono_org_freedesktop_dbus_introspectable_method_info_pointers[] = +{ + &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _ofono_org_freedesktop_dbus_introspectable_interface_info = +{ + { + -1, + (gchar *) "org.freedesktop.DBus.Introspectable", + (GDBusMethodInfo **) &_ofono_org_freedesktop_dbus_introspectable_method_info_pointers, + NULL, + NULL, + NULL + }, + "org-freedesktop-dbus-introspectable", +}; + + +/** + * ofono_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_org_freedesktop_dbus_introspectable_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct; +} + +/** + * ofono_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 #OFONOOrgFreedesktopDBusIntrospectable interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +ofono_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * OFONOOrgFreedesktopDBusIntrospectable: + * + * Abstract interface type for the D-Bus interface org.freedesktop.DBus.Introspectable. + */ + +/** + * OFONOOrgFreedesktopDBusIntrospectableIface: + * @parent_iface: The parent interface. + * @handle_introspect: Handler for the #OFONOOrgFreedesktopDBusIntrospectable::handle-introspect signal. + * + * Virtual table for the D-Bus interface org.freedesktop.DBus.Introspectable. + */ + +typedef OFONOOrgFreedesktopDBusIntrospectableIface OFONOOrgFreedesktopDBusIntrospectableInterface; +G_DEFINE_INTERFACE (OFONOOrgFreedesktopDBusIntrospectable, ofono_org_freedesktop_dbus_introspectable, G_TYPE_OBJECT); + +static void +ofono_org_freedesktop_dbus_introspectable_default_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * OFONOOrgFreedesktopDBusIntrospectable::handle-introspect: + * @object: A #OFONOOrgFreedesktopDBusIntrospectable. + * @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_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 (OFONOOrgFreedesktopDBusIntrospectableIface, handle_introspect), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + +} + +/** + * ofono_org_freedesktop_dbus_introspectable_call_introspect: + * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. + * @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_org_freedesktop_dbus_introspectable_call_introspect_finish() to get the result of the operation. + * + * See ofono_org_freedesktop_dbus_introspectable_call_introspect_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_freedesktop_dbus_introspectable_call_introspect ( + OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_call_introspect_finish: + * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. + * @out_xml: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_call_introspect(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_call_introspect(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_freedesktop_dbus_introspectable_call_introspect_finish ( + OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_call_introspect_sync: + * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. + * @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_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_org_freedesktop_dbus_introspectable_call_introspect_sync ( + OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_complete_introspect: + * @object: A #OFONOOrgFreedesktopDBusIntrospectable. + * @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_org_freedesktop_dbus_introspectable_complete_introspect ( + OFONOOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation, + const gchar *xml) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(s)", + xml)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgFreedesktopDBusIntrospectableProxy: + * + * The #OFONOOrgFreedesktopDBusIntrospectableProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgFreedesktopDBusIntrospectableProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgFreedesktopDBusIntrospectableProxy. + */ + +struct _OFONOOrgFreedesktopDBusIntrospectableProxyPrivate +{ + GData *qdata; +}; + +static void ofono_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableProxy, ofono_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (OFONOOrgFreedesktopDBusIntrospectableProxy) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableProxy, ofono_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_proxy_iface_init)); + +#endif +static void +ofono_org_freedesktop_dbus_introspectable_proxy_finalize (GObject *object) +{ + OFONOOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (ofono_org_freedesktop_dbus_introspectable_proxy_parent_class)->finalize (object); +} + +static void +ofono_org_freedesktop_dbus_introspectable_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_freedesktop_dbus_introspectable_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_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_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_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_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_org_freedesktop_dbus_introspectable_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + OFONOOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_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_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_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_org_freedesktop_dbus_introspectable_proxy_init (OFONOOrgFreedesktopDBusIntrospectableProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = ofono_org_freedesktop_dbus_introspectable_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_freedesktop_dbus_introspectable_interface_info ()); +} + +static void +ofono_org_freedesktop_dbus_introspectable_proxy_class_init (OFONOOrgFreedesktopDBusIntrospectableProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_freedesktop_dbus_introspectable_proxy_finalize; + gobject_class->get_property = ofono_org_freedesktop_dbus_introspectable_proxy_get_property; + gobject_class->set_property = ofono_org_freedesktop_dbus_introspectable_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = ofono_org_freedesktop_dbus_introspectable_proxy_g_signal; + proxy_class->g_properties_changed = ofono_org_freedesktop_dbus_introspectable_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgFreedesktopDBusIntrospectableProxyPrivate)); +#endif +} + +static void +ofono_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) +{ +} + +/** + * ofono_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_org_freedesktop_dbus_introspectable_proxy_new_finish() to get the result of the operation. + * + * See ofono_org_freedesktop_dbus_introspectable_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_proxy_new(). + * + * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgFreedesktopDBusIntrospectable * +ofono_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + +/** + * ofono_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_org_freedesktop_dbus_introspectable_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgFreedesktopDBusIntrospectable * +ofono_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_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + + +/** + * ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish() to get the result of the operation. + * + * See ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). + * + * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgFreedesktopDBusIntrospectable * +ofono_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + +/** + * ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgFreedesktopDBusIntrospectable * +ofono_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_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgFreedesktopDBusIntrospectableSkeleton: + * + * The #OFONOOrgFreedesktopDBusIntrospectableSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgFreedesktopDBusIntrospectableSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgFreedesktopDBusIntrospectableSkeleton. + */ + +struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_ofono_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) +{ + OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_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_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) +{ + OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_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) +{ + OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_org_freedesktop_dbus_introspectable_skeleton_vtable = +{ + _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_method_call, + _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_get_property, + _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return ofono_org_freedesktop_dbus_introspectable_interface_info (); +} + +static GDBusInterfaceVTable * +ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_ofono_org_freedesktop_dbus_introspectable_skeleton_vtable; +} + +static GVariant * +ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _ofono_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_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableSkeleton, ofono_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (OFONOOrgFreedesktopDBusIntrospectableSkeleton) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableSkeleton, ofono_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init)); + +#endif +static void +ofono_org_freedesktop_dbus_introspectable_skeleton_finalize (GObject *object) +{ + OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_org_freedesktop_dbus_introspectable_skeleton_parent_class)->finalize (object); +} + +static void +ofono_org_freedesktop_dbus_introspectable_skeleton_init (OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = ofono_org_freedesktop_dbus_introspectable_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +ofono_org_freedesktop_dbus_introspectable_skeleton_class_init (OFONOOrgFreedesktopDBusIntrospectableSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_freedesktop_dbus_introspectable_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties; + skeleton_class->flush = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = ofono_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 (OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate)); +#endif +} + +static void +ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) +{ +} + +/** + * ofono_org_freedesktop_dbus_introspectable_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.freedesktop.DBus.Introspectable. + * + * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableSkeleton): The skeleton object. + */ +OFONOOrgFreedesktopDBusIntrospectable * +ofono_org_freedesktop_dbus_introspectable_skeleton_new (void) +{ + return OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (g_object_new (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.ofono.Manager + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOOrgOfonoManager + * @title: OFONOOrgOfonoManager + * @short_description: Generated C code for the org.ofono.Manager D-Bus interface + * + * This section contains code for working with the org.ofono.Manager D-Bus interface in C. + */ + +/* ---- Introspection data for org.ofono.Manager ---- */ + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_modems = +{ + { + -1, + (gchar *) "modems", + (gchar *) "a(oa{sv})", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_pointers[] = +{ + &_ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_modems, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_manager_method_info_get_modems = +{ + { + -1, + (gchar *) "GetModems", + NULL, + (GDBusArgInfo **) &_ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_pointers, + NULL + }, + "handle-get-modems", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_manager_method_info_pointers[] = +{ + &_ofono_org_ofono_manager_method_info_get_modems, + NULL +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_added_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_added_ARG_properties = +{ + { + -1, + (gchar *) "properties", + (gchar *) "a{sv}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_signal_info_modem_added_ARG_pointers[] = +{ + &_ofono_org_ofono_manager_signal_info_modem_added_ARG_path, + &_ofono_org_ofono_manager_signal_info_modem_added_ARG_properties, + NULL +}; + +static const _ExtendedGDBusSignalInfo _ofono_org_ofono_manager_signal_info_modem_added = +{ + { + -1, + (gchar *) "ModemAdded", + (GDBusArgInfo **) &_ofono_org_ofono_manager_signal_info_modem_added_ARG_pointers, + NULL + }, + "modem-added" +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_removed_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_signal_info_modem_removed_ARG_pointers[] = +{ + &_ofono_org_ofono_manager_signal_info_modem_removed_ARG_path, + NULL +}; + +static const _ExtendedGDBusSignalInfo _ofono_org_ofono_manager_signal_info_modem_removed = +{ + { + -1, + (gchar *) "ModemRemoved", + (GDBusArgInfo **) &_ofono_org_ofono_manager_signal_info_modem_removed_ARG_pointers, + NULL + }, + "modem-removed" +}; + +static const _ExtendedGDBusSignalInfo * const _ofono_org_ofono_manager_signal_info_pointers[] = +{ + &_ofono_org_ofono_manager_signal_info_modem_added, + &_ofono_org_ofono_manager_signal_info_modem_removed, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_manager_interface_info = +{ + { + -1, + (gchar *) "org.ofono.Manager", + (GDBusMethodInfo **) &_ofono_org_ofono_manager_method_info_pointers, + (GDBusSignalInfo **) &_ofono_org_ofono_manager_signal_info_pointers, + NULL, + NULL + }, + "org-ofono-manager", +}; + + +/** + * ofono_org_ofono_manager_interface_info: + * + * Gets a machine-readable description of the org.ofono.Manager D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +ofono_org_ofono_manager_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_ofono_org_ofono_manager_interface_info.parent_struct; +} + +/** + * ofono_org_ofono_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 #OFONOOrgOfonoManager interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +ofono_org_ofono_manager_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * OFONOOrgOfonoManager: + * + * Abstract interface type for the D-Bus interface org.ofono.Manager. + */ + +/** + * OFONOOrgOfonoManagerIface: + * @parent_iface: The parent interface. + * @handle_get_modems: Handler for the #OFONOOrgOfonoManager::handle-get-modems signal. + * @modem_added: Handler for the #OFONOOrgOfonoManager::modem-added signal. + * @modem_removed: Handler for the #OFONOOrgOfonoManager::modem-removed signal. + * + * Virtual table for the D-Bus interface org.ofono.Manager. + */ + +typedef OFONOOrgOfonoManagerIface OFONOOrgOfonoManagerInterface; +G_DEFINE_INTERFACE (OFONOOrgOfonoManager, ofono_org_ofono_manager, G_TYPE_OBJECT); + +static void +ofono_org_ofono_manager_default_init (OFONOOrgOfonoManagerIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * OFONOOrgOfonoManager::handle-get-modems: + * @object: A #OFONOOrgOfonoManager. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetModems() 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_org_ofono_manager_complete_get_modems() 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-modems", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, handle_get_modems), + 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: */ + /** + * OFONOOrgOfonoManager::modem-added: + * @object: A #OFONOOrgOfonoManager. + * @arg_path: Argument. + * @arg_properties: Argument. + * + * On the client-side, this signal is emitted whenever the D-Bus signal "ModemAdded" 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 ("modem-added", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, modem_added), + NULL, + NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_VARIANT); + + /** + * OFONOOrgOfonoManager::modem-removed: + * @object: A #OFONOOrgOfonoManager. + * @arg_path: Argument. + * + * On the client-side, this signal is emitted whenever the D-Bus signal "ModemRemoved" 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 ("modem-removed", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, modem_removed), + NULL, + NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 1, G_TYPE_STRING); + +} + +/** + * ofono_org_ofono_manager_emit_modem_added: + * @object: A #OFONOOrgOfonoManager. + * @arg_path: Argument to pass with the signal. + * @arg_properties: Argument to pass with the signal. + * + * Emits the "ModemAdded" D-Bus signal. + */ +void +ofono_org_ofono_manager_emit_modem_added ( + OFONOOrgOfonoManager *object, + const gchar *arg_path, + GVariant *arg_properties) +{ + g_signal_emit_by_name (object, "modem-added", arg_path, arg_properties); +} + +/** + * ofono_org_ofono_manager_emit_modem_removed: + * @object: A #OFONOOrgOfonoManager. + * @arg_path: Argument to pass with the signal. + * + * Emits the "ModemRemoved" D-Bus signal. + */ +void +ofono_org_ofono_manager_emit_modem_removed ( + OFONOOrgOfonoManager *object, + const gchar *arg_path) +{ + g_signal_emit_by_name (object, "modem-removed", arg_path); +} + +/** + * ofono_org_ofono_manager_call_get_modems: + * @proxy: A #OFONOOrgOfonoManagerProxy. + * @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 GetModems() 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_org_ofono_manager_call_get_modems_finish() to get the result of the operation. + * + * See ofono_org_ofono_manager_call_get_modems_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_manager_call_get_modems ( + OFONOOrgOfonoManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetModems", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_manager_call_get_modems_finish: + * @proxy: A #OFONOOrgOfonoManagerProxy. + * @out_modems: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_call_get_modems(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_manager_call_get_modems(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_manager_call_get_modems_finish ( + OFONOOrgOfonoManager *proxy, + GVariant **out_modems, + 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_modems); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * ofono_org_ofono_manager_call_get_modems_sync: + * @proxy: A #OFONOOrgOfonoManagerProxy. + * @out_modems: (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 GetModems() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_manager_call_get_modems() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_manager_call_get_modems_sync ( + OFONOOrgOfonoManager *proxy, + GVariant **out_modems, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetModems", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(@a(oa{sv}))", + out_modems); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * ofono_org_ofono_manager_complete_get_modems: + * @object: A #OFONOOrgOfonoManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @modems: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetModems() 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_org_ofono_manager_complete_get_modems ( + OFONOOrgOfonoManager *object, + GDBusMethodInvocation *invocation, + GVariant *modems) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(@a(oa{sv}))", + modems)); +} + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoManagerProxy: + * + * The #OFONOOrgOfonoManagerProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoManagerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoManagerProxy. + */ + +struct _OFONOOrgOfonoManagerProxyPrivate +{ + GData *qdata; +}; + +static void ofono_org_ofono_manager_proxy_iface_init (OFONOOrgOfonoManagerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerProxy, ofono_org_ofono_manager_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (OFONOOrgOfonoManagerProxy) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerProxy, ofono_org_ofono_manager_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_proxy_iface_init)); + +#endif +static void +ofono_org_ofono_manager_proxy_finalize (GObject *object) +{ + OFONOOrgOfonoManagerProxy *proxy = OFONO_ORG_OFONO_MANAGER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (ofono_org_ofono_manager_proxy_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_manager_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_manager_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_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_org_ofono_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_TYPE_ORG_OFONO_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_TYPE_ORG_OFONO_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_org_ofono_manager_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + OFONOOrgOfonoManagerProxy *proxy = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_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_org_ofono_manager_proxy_init (OFONOOrgOfonoManagerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = ofono_org_ofono_manager_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_manager_interface_info ()); +} + +static void +ofono_org_ofono_manager_proxy_class_init (OFONOOrgOfonoManagerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_manager_proxy_finalize; + gobject_class->get_property = ofono_org_ofono_manager_proxy_get_property; + gobject_class->set_property = ofono_org_ofono_manager_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = ofono_org_ofono_manager_proxy_g_signal; + proxy_class->g_properties_changed = ofono_org_ofono_manager_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoManagerProxyPrivate)); +#endif +} + +static void +ofono_org_ofono_manager_proxy_iface_init (OFONOOrgOfonoManagerIface *iface) +{ +} + +/** + * ofono_org_ofono_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.Manager. 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_org_ofono_manager_proxy_new_finish() to get the result of the operation. + * + * See ofono_org_ofono_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); +} + +/** + * ofono_org_ofono_manager_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_manager_proxy_new(). + * + * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoManager * +ofono_org_ofono_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_ORG_OFONO_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_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.Manager. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_manager_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoManager * +ofono_org_ofono_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_TYPE_ORG_OFONO_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Manager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_MANAGER (ret); + else + return NULL; +} + + +/** + * ofono_org_ofono_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_org_ofono_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_org_ofono_manager_proxy_new_for_bus_finish() to get the result of the operation. + * + * See ofono_org_ofono_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); +} + +/** + * ofono_org_ofono_manager_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_manager_proxy_new_for_bus(). + * + * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoManager * +ofono_org_ofono_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_ORG_OFONO_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_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_org_ofono_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_manager_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoManager * +ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_MANAGER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoManagerSkeleton: + * + * The #OFONOOrgOfonoManagerSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoManagerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoManagerSkeleton. + */ + +struct _OFONOOrgOfonoManagerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_ofono_org_ofono_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) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_TYPE_ORG_OFONO_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_TYPE_ORG_OFONO_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_org_ofono_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) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_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) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_manager_skeleton_vtable = +{ + _ofono_org_ofono_manager_skeleton_handle_method_call, + _ofono_org_ofono_manager_skeleton_handle_get_property, + _ofono_org_ofono_manager_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +ofono_org_ofono_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return ofono_org_ofono_manager_interface_info (); +} + +static GDBusInterfaceVTable * +ofono_org_ofono_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_ofono_org_ofono_manager_skeleton_vtable; +} + +static GVariant * +ofono_org_ofono_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_MANAGER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_ofono_org_ofono_manager_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _ofono_org_ofono_manager_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _ofono_org_ofono_manager_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _ofono_org_ofono_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.Manager", 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_org_ofono_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void +_ofono_org_ofono_manager_on_signal_modem_added ( + OFONOOrgOfonoManager *object, + const gchar *arg_path, + GVariant *arg_properties) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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.Manager", "ModemAdded", + signal_variant, NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); +} + +static void +_ofono_org_ofono_manager_on_signal_modem_removed ( + OFONOOrgOfonoManager *object, + const gchar *arg_path) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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.Manager", "ModemRemoved", + signal_variant, NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); +} + +static void ofono_org_ofono_manager_skeleton_iface_init (OFONOOrgOfonoManagerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerSkeleton, ofono_org_ofono_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (OFONOOrgOfonoManagerSkeleton) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerSkeleton, ofono_org_ofono_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_skeleton_iface_init)); + +#endif +static void +ofono_org_ofono_manager_skeleton_finalize (GObject *object) +{ + OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_manager_skeleton_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_manager_skeleton_init (OFONOOrgOfonoManagerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = ofono_org_ofono_manager_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +ofono_org_ofono_manager_skeleton_class_init (OFONOOrgOfonoManagerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_manager_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = ofono_org_ofono_manager_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = ofono_org_ofono_manager_skeleton_dbus_interface_get_properties; + skeleton_class->flush = ofono_org_ofono_manager_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = ofono_org_ofono_manager_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoManagerSkeletonPrivate)); +#endif +} + +static void +ofono_org_ofono_manager_skeleton_iface_init (OFONOOrgOfonoManagerIface *iface) +{ + iface->modem_added = _ofono_org_ofono_manager_on_signal_modem_added; + iface->modem_removed = _ofono_org_ofono_manager_on_signal_modem_removed; +} + +/** + * ofono_org_ofono_manager_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.ofono.Manager. + * + * Returns: (transfer full) (type OFONOOrgOfonoManagerSkeleton): The skeleton object. + */ +OFONOOrgOfonoManager * +ofono_org_ofono_manager_skeleton_new (void) +{ + return OFONO_ORG_OFONO_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.ofono.HandsfreeAudioManager + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOOrgOfonoHandsfreeAudioManager + * @title: OFONOOrgOfonoHandsfreeAudioManager + * @short_description: Generated C code for the org.ofono.HandsfreeAudioManager D-Bus interface + * + * This section contains code for working with the org.ofono.HandsfreeAudioManager D-Bus interface in C. + */ + +/* ---- Introspection data for org.ofono.HandsfreeAudioManager ---- */ + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_cards = +{ + { + -1, + (gchar *) "cards", + (gchar *) "a{oa{sv}}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_cards, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards = +{ + { + -1, + (gchar *) "GetCards", + NULL, + (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_pointers, + NULL + }, + "handle-get-cards", + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_codecs = +{ + { + -1, + (gchar *) "codecs", + (gchar *) "ay", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_path, + &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_codecs, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register = +{ + { + -1, + (gchar *) "Register", + (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_pointers, + NULL, + NULL + }, + "handle-register", + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_path, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_unregister = +{ + { + -1, + (gchar *) "Unregister", + (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_pointers, + NULL, + NULL + }, + "handle-unregister", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards, + &_ofono_org_ofono_handsfree_audio_manager_method_info_register, + &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister, + NULL +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_properties = +{ + { + -1, + (gchar *) "properties", + (gchar *) "a{sv}", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_path, + &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_properties, + NULL +}; + +static const _ExtendedGDBusSignalInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added = +{ + { + -1, + (gchar *) "CardAdded", + (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_pointers, + NULL + }, + "card-added" +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_path = +{ + { + -1, + (gchar *) "path", + (gchar *) "o", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_path, + NULL +}; + +static const _ExtendedGDBusSignalInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed = +{ + { + -1, + (gchar *) "CardRemoved", + (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_pointers, + NULL + }, + "card-removed" +}; + +static const _ExtendedGDBusSignalInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_pointers[] = +{ + &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added, + &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_handsfree_audio_manager_interface_info = +{ + { + -1, + (gchar *) "org.ofono.HandsfreeAudioManager", + (GDBusMethodInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_pointers, + (GDBusSignalInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_pointers, + NULL, + NULL + }, + "org-ofono-handsfree-audio-manager", +}; + + +/** + * ofono_org_ofono_handsfree_audio_manager_interface_info: + * + * Gets a machine-readable description of the org.ofono.HandsfreeAudioManager D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +ofono_org_ofono_handsfree_audio_manager_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct; +} + +/** + * ofono_org_ofono_handsfree_audio_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 #OFONOOrgOfonoHandsfreeAudioManager interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +ofono_org_ofono_handsfree_audio_manager_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * OFONOOrgOfonoHandsfreeAudioManager: + * + * Abstract interface type for the D-Bus interface org.ofono.HandsfreeAudioManager. + */ + +/** + * OFONOOrgOfonoHandsfreeAudioManagerIface: + * @parent_iface: The parent interface. + * @handle_get_cards: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-get-cards signal. + * @handle_register: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-register signal. + * @handle_unregister: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-unregister signal. + * @card_added: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::card-added signal. + * @card_removed: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::card-removed signal. + * + * Virtual table for the D-Bus interface org.ofono.HandsfreeAudioManager. + */ + +typedef OFONOOrgOfonoHandsfreeAudioManagerIface OFONOOrgOfonoHandsfreeAudioManagerInterface; +G_DEFINE_INTERFACE (OFONOOrgOfonoHandsfreeAudioManager, ofono_org_ofono_handsfree_audio_manager, G_TYPE_OBJECT); + +static void +ofono_org_ofono_handsfree_audio_manager_default_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * OFONOOrgOfonoHandsfreeAudioManager::handle-get-cards: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the GetCards() 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_org_ofono_handsfree_audio_manager_complete_get_cards() 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-cards", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_get_cards), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /** + * OFONOOrgOfonoHandsfreeAudioManager::handle-register: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_path: Argument passed by remote caller. + * @arg_codecs: Argument passed by remote caller. + * + * 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_org_ofono_handsfree_audio_manager_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 (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_register), + 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); + + /** + * OFONOOrgOfonoHandsfreeAudioManager::handle-unregister: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_path: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Unregister() 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_org_ofono_handsfree_audio_manager_complete_unregister() 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-unregister", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_unregister), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 2, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); + + /* GObject signals for received D-Bus signals: */ + /** + * OFONOOrgOfonoHandsfreeAudioManager::card-added: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @arg_path: Argument. + * @arg_properties: Argument. + * + * On the client-side, this signal is emitted whenever the D-Bus signal "CardAdded" 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 ("card-added", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, card_added), + NULL, + NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 2, G_TYPE_STRING, G_TYPE_VARIANT); + + /** + * OFONOOrgOfonoHandsfreeAudioManager::card-removed: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @arg_path: Argument. + * + * On the client-side, this signal is emitted whenever the D-Bus signal "CardRemoved" 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 ("card-removed", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, card_removed), + NULL, + NULL, + g_cclosure_marshal_generic, + G_TYPE_NONE, + 1, G_TYPE_STRING); + +} + +/** + * ofono_org_ofono_handsfree_audio_manager_emit_card_added: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @arg_path: Argument to pass with the signal. + * @arg_properties: Argument to pass with the signal. + * + * Emits the "CardAdded" D-Bus signal. + */ +void +ofono_org_ofono_handsfree_audio_manager_emit_card_added ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path, + GVariant *arg_properties) +{ + g_signal_emit_by_name (object, "card-added", arg_path, arg_properties); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_emit_card_removed: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @arg_path: Argument to pass with the signal. + * + * Emits the "CardRemoved" D-Bus signal. + */ +void +ofono_org_ofono_handsfree_audio_manager_emit_card_removed ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path) +{ + g_signal_emit_by_name (object, "card-removed", arg_path); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_get_cards: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @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 GetCards() 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_org_ofono_handsfree_audio_manager_call_get_cards_finish() to get the result of the operation. + * + * See ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_handsfree_audio_manager_call_get_cards ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "GetCards", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @out_cards: (out): Return location for return parameter or %NULL to ignore. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_get_cards(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_get_cards(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GVariant **out_cards, + 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_cards); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @out_cards: (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 GetCards() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_handsfree_audio_manager_call_get_cards() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GVariant **out_cards, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "GetCards", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + error); + if (_ret == NULL) + goto _out; + g_variant_get (_ret, + "(@a{oa{sv}})", + out_cards); + g_variant_unref (_ret); +_out: + return _ret != NULL; +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_register: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @arg_path: Argument to pass with the method invocation. + * @arg_codecs: 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 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_org_ofono_handsfree_audio_manager_call_register_finish() to get the result of the operation. + * + * See ofono_org_ofono_handsfree_audio_manager_call_register_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_handsfree_audio_manager_call_register ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + const gchar *arg_codecs, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Register", + g_variant_new ("(o^ay)", + arg_path, + arg_codecs), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_register_finish: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_register(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_register(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_register_finish ( + OFONOOrgOfonoHandsfreeAudioManager *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_org_ofono_handsfree_audio_manager_call_register_sync: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @arg_path: Argument to pass with the method invocation. + * @arg_codecs: Argument to pass with the method invocation. + * @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_org_ofono_handsfree_audio_manager_call_register() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_register_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + const gchar *arg_codecs, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Register", + g_variant_new ("(o^ay)", + arg_path, + arg_codecs), + 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_org_ofono_handsfree_audio_manager_call_unregister: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @arg_path: 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 Unregister() 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_org_ofono_handsfree_audio_manager_call_unregister_finish() to get the result of the operation. + * + * See ofono_org_ofono_handsfree_audio_manager_call_unregister_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_handsfree_audio_manager_call_unregister ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Unregister", + g_variant_new ("(o)", + arg_path), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_call_unregister_finish: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_unregister(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_unregister(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_unregister_finish ( + OFONOOrgOfonoHandsfreeAudioManager *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_org_ofono_handsfree_audio_manager_call_unregister_sync: + * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. + * @arg_path: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Unregister() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_handsfree_audio_manager_call_unregister() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_handsfree_audio_manager_call_unregister_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Unregister", + g_variant_new ("(o)", + arg_path), + 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_org_ofono_handsfree_audio_manager_complete_get_cards: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * @cards: Parameter to return. + * + * Helper function used in service implementations to finish handling invocations of the GetCards() 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_org_ofono_handsfree_audio_manager_complete_get_cards ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation, + GVariant *cards) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("(@a{oa{sv}})", + cards)); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_complete_register: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @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_org_ofono_handsfree_audio_manager_complete_register ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_complete_unregister: + * @object: A #OFONOOrgOfonoHandsfreeAudioManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Unregister() 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_org_ofono_handsfree_audio_manager_complete_unregister ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoHandsfreeAudioManagerProxy: + * + * The #OFONOOrgOfonoHandsfreeAudioManagerProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoHandsfreeAudioManagerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoHandsfreeAudioManagerProxy. + */ + +struct _OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate +{ + GData *qdata; +}; + +static void ofono_org_ofono_handsfree_audio_manager_proxy_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerProxy, ofono_org_ofono_handsfree_audio_manager_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (OFONOOrgOfonoHandsfreeAudioManagerProxy) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerProxy, ofono_org_ofono_handsfree_audio_manager_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_proxy_iface_init)); + +#endif +static void +ofono_org_ofono_handsfree_audio_manager_proxy_finalize (GObject *object) +{ + OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy = OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (ofono_org_ofono_handsfree_audio_manager_proxy_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_handsfree_audio_manager_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_handsfree_audio_manager_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_manager_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_init (OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = ofono_org_ofono_handsfree_audio_manager_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_handsfree_audio_manager_interface_info ()); +} + +static void +ofono_org_ofono_handsfree_audio_manager_proxy_class_init (OFONOOrgOfonoHandsfreeAudioManagerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_handsfree_audio_manager_proxy_finalize; + gobject_class->get_property = ofono_org_ofono_handsfree_audio_manager_proxy_get_property; + gobject_class->set_property = ofono_org_ofono_handsfree_audio_manager_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = ofono_org_ofono_handsfree_audio_manager_proxy_g_signal; + proxy_class->g_properties_changed = ofono_org_ofono_handsfree_audio_manager_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate)); +#endif +} + +static void +ofono_org_ofono_handsfree_audio_manager_proxy_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) +{ +} + +/** + * ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager. 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_org_ofono_handsfree_audio_manager_proxy_new_finish() to get the result of the operation. + * + * See ofono_org_ofono_handsfree_audio_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_proxy_new(). + * + * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoHandsfreeAudioManager * +ofono_org_ofono_handsfree_audio_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_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_handsfree_audio_manager_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoHandsfreeAudioManager * +ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.HandsfreeAudioManager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); + else + return NULL; +} + + +/** + * ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish() to get the result of the operation. + * + * See ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); +} + +/** + * ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus(). + * + * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoHandsfreeAudioManager * +ofono_org_ofono_handsfree_audio_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_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoHandsfreeAudioManager * +ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoHandsfreeAudioManagerSkeleton: + * + * The #OFONOOrgOfonoHandsfreeAudioManagerSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoHandsfreeAudioManagerSkeleton. + */ + +struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_ofono_org_ofono_handsfree_audio_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) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_skeleton_vtable = +{ + _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_method_call, + _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_get_property, + _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return ofono_org_ofono_handsfree_audio_manager_interface_info (); +} + +static GDBusInterfaceVTable * +ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_ofono_org_ofono_handsfree_audio_manager_skeleton_vtable; +} + +static GVariant * +ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager", 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_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void +_ofono_org_ofono_handsfree_audio_manager_on_signal_card_added ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path, + GVariant *arg_properties) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", "CardAdded", + signal_variant, NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); +} + +static void +_ofono_org_ofono_handsfree_audio_manager_on_signal_card_removed ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", "CardRemoved", + signal_variant, NULL); + } + g_variant_unref (signal_variant); + g_list_free_full (connections, g_object_unref); +} + +static void ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, ofono_org_ofono_handsfree_audio_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, ofono_org_ofono_handsfree_audio_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init)); + +#endif +static void +ofono_org_ofono_handsfree_audio_manager_skeleton_finalize (GObject *object) +{ + OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_manager_skeleton_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_handsfree_audio_manager_skeleton_init (OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = ofono_org_ofono_handsfree_audio_manager_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +ofono_org_ofono_handsfree_audio_manager_skeleton_class_init (OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_handsfree_audio_manager_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_properties; + skeleton_class->flush = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate)); +#endif +} + +static void +ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) +{ + iface->card_added = _ofono_org_ofono_handsfree_audio_manager_on_signal_card_added; + iface->card_removed = _ofono_org_ofono_handsfree_audio_manager_on_signal_card_removed; +} + +/** + * ofono_org_ofono_handsfree_audio_manager_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.ofono.HandsfreeAudioManager. + * + * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerSkeleton): The skeleton object. + */ +OFONOOrgOfonoHandsfreeAudioManager * +ofono_org_ofono_handsfree_audio_manager_skeleton_new (void) +{ + return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for interface org.ofono.phonesim.Manager + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOOrgOfonoPhonesimManager + * @title: OFONOOrgOfonoPhonesimManager + * @short_description: Generated C code for the org.ofono.phonesim.Manager D-Bus interface + * + * This section contains code for working with the org.ofono.phonesim.Manager D-Bus interface in C. + */ + +/* ---- Introspection data for org.ofono.phonesim.Manager ---- */ + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_name = +{ + { + -1, + (gchar *) "name", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_address = +{ + { + -1, + (gchar *) "address", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_port = +{ + { + -1, + (gchar *) "port", + (gchar *) "s", + NULL + }, + FALSE +}; + +static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_pointers[] = +{ + &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_name, + &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_address, + &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_port, + NULL +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_add = +{ + { + -1, + (gchar *) "Add", + (GDBusArgInfo **) &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_pointers, + NULL, + NULL + }, + "handle-add", + FALSE +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_remove_all = +{ + { + -1, + (gchar *) "RemoveAll", + NULL, + NULL, + NULL + }, + "handle-remove-all", + FALSE +}; + +static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_reset = +{ + { + -1, + (gchar *) "Reset", + NULL, + NULL, + NULL + }, + "handle-reset", + FALSE +}; + +static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_phonesim_manager_method_info_pointers[] = +{ + &_ofono_org_ofono_phonesim_manager_method_info_add, + &_ofono_org_ofono_phonesim_manager_method_info_remove_all, + &_ofono_org_ofono_phonesim_manager_method_info_reset, + NULL +}; + +static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_phonesim_manager_interface_info = +{ + { + -1, + (gchar *) "org.ofono.phonesim.Manager", + (GDBusMethodInfo **) &_ofono_org_ofono_phonesim_manager_method_info_pointers, + NULL, + NULL, + NULL + }, + "org-ofono-phonesim-manager", +}; + + +/** + * ofono_org_ofono_phonesim_manager_interface_info: + * + * Gets a machine-readable description of the org.ofono.phonesim.Manager D-Bus interface. + * + * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. + */ +GDBusInterfaceInfo * +ofono_org_ofono_phonesim_manager_interface_info (void) +{ + return (GDBusInterfaceInfo *) &_ofono_org_ofono_phonesim_manager_interface_info.parent_struct; +} + +/** + * ofono_org_ofono_phonesim_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 #OFONOOrgOfonoPhonesimManager interface for a concrete class. + * The properties are overridden in the order they are defined. + * + * Returns: The last property id. + */ +guint +ofono_org_ofono_phonesim_manager_override_properties (GObjectClass *klass, guint property_id_begin) +{ + return property_id_begin - 1; +} + + + +/** + * OFONOOrgOfonoPhonesimManager: + * + * Abstract interface type for the D-Bus interface org.ofono.phonesim.Manager. + */ + +/** + * OFONOOrgOfonoPhonesimManagerIface: + * @parent_iface: The parent interface. + * @handle_add: Handler for the #OFONOOrgOfonoPhonesimManager::handle-add signal. + * @handle_remove_all: Handler for the #OFONOOrgOfonoPhonesimManager::handle-remove-all signal. + * @handle_reset: Handler for the #OFONOOrgOfonoPhonesimManager::handle-reset signal. + * + * Virtual table for the D-Bus interface org.ofono.phonesim.Manager. + */ + +typedef OFONOOrgOfonoPhonesimManagerIface OFONOOrgOfonoPhonesimManagerInterface; +G_DEFINE_INTERFACE (OFONOOrgOfonoPhonesimManager, ofono_org_ofono_phonesim_manager, G_TYPE_OBJECT); + +static void +ofono_org_ofono_phonesim_manager_default_init (OFONOOrgOfonoPhonesimManagerIface *iface) +{ + /* GObject signals for incoming D-Bus method calls: */ + /** + * OFONOOrgOfonoPhonesimManager::handle-add: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: A #GDBusMethodInvocation. + * @arg_name: Argument passed by remote caller. + * @arg_address: Argument passed by remote caller. + * @arg_port: Argument passed by remote caller. + * + * Signal emitted when a remote caller is invoking the Add() 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_org_ofono_phonesim_manager_complete_add() 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-add", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_add), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 4, + G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); + + /** + * OFONOOrgOfonoPhonesimManager::handle-remove-all: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the RemoveAll() 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_org_ofono_phonesim_manager_complete_remove_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-remove-all", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_remove_all), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + + /** + * OFONOOrgOfonoPhonesimManager::handle-reset: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: A #GDBusMethodInvocation. + * + * Signal emitted when a remote caller is invoking the Reset() 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_org_ofono_phonesim_manager_complete_reset() 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-reset", + G_TYPE_FROM_INTERFACE (iface), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_reset), + g_signal_accumulator_true_handled, + NULL, + g_cclosure_marshal_generic, + G_TYPE_BOOLEAN, + 1, + G_TYPE_DBUS_METHOD_INVOCATION); + +} + +/** + * ofono_org_ofono_phonesim_manager_call_add: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @arg_name: Argument to pass with the method invocation. + * @arg_address: Argument to pass with the method invocation. + * @arg_port: 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 Add() 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_org_ofono_phonesim_manager_call_add_finish() to get the result of the operation. + * + * See ofono_org_ofono_phonesim_manager_call_add_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_phonesim_manager_call_add ( + OFONOOrgOfonoPhonesimManager *proxy, + const gchar *arg_name, + const gchar *arg_address, + const gchar *arg_port, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Add", + g_variant_new ("(sss)", + arg_name, + arg_address, + arg_port), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_phonesim_manager_call_add_finish: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_add(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_add(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_add_finish ( + OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_add_sync: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @arg_name: Argument to pass with the method invocation. + * @arg_address: Argument to pass with the method invocation. + * @arg_port: Argument to pass with the method invocation. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Add() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_phonesim_manager_call_add() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_add_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + const gchar *arg_name, + const gchar *arg_address, + const gchar *arg_port, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Add", + g_variant_new ("(sss)", + arg_name, + arg_address, + arg_port), + 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_org_ofono_phonesim_manager_call_remove_all: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @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 RemoveAll() 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_org_ofono_phonesim_manager_call_remove_all_finish() to get the result of the operation. + * + * See ofono_org_ofono_phonesim_manager_call_remove_all_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_phonesim_manager_call_remove_all ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "RemoveAll", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_phonesim_manager_call_remove_all_finish: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_remove_all(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_remove_all(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_remove_all_finish ( + OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_remove_all_sync: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the RemoveAll() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_phonesim_manager_call_remove_all() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_remove_all_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "RemoveAll", + 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_org_ofono_phonesim_manager_call_reset: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @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 Reset() 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_org_ofono_phonesim_manager_call_reset_finish() to get the result of the operation. + * + * See ofono_org_ofono_phonesim_manager_call_reset_sync() for the synchronous, blocking version of this method. + */ +void +ofono_org_ofono_phonesim_manager_call_reset ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_proxy_call (G_DBUS_PROXY (proxy), + "Reset", + g_variant_new ("()"), + G_DBUS_CALL_FLAGS_NONE, + -1, + cancellable, + callback, + user_data); +} + +/** + * ofono_org_ofono_phonesim_manager_call_reset_finish: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_reset(). + * @error: Return location for error or %NULL. + * + * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_reset(). + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_reset_finish ( + OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_reset_sync: + * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. + * @cancellable: (allow-none): A #GCancellable or %NULL. + * @error: Return location for error or %NULL. + * + * Synchronously invokes the Reset() D-Bus method on @proxy. The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_phonesim_manager_call_reset() for the asynchronous version of this method. + * + * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. + */ +gboolean +ofono_org_ofono_phonesim_manager_call_reset_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GError **error) +{ + GVariant *_ret; + _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), + "Reset", + 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_org_ofono_phonesim_manager_complete_add: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Add() 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_org_ofono_phonesim_manager_complete_add ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * ofono_org_ofono_phonesim_manager_complete_remove_all: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the RemoveAll() 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_org_ofono_phonesim_manager_complete_remove_all ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/** + * ofono_org_ofono_phonesim_manager_complete_reset: + * @object: A #OFONOOrgOfonoPhonesimManager. + * @invocation: (transfer full): A #GDBusMethodInvocation. + * + * Helper function used in service implementations to finish handling invocations of the Reset() 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_org_ofono_phonesim_manager_complete_reset ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation) +{ + g_dbus_method_invocation_return_value (invocation, + g_variant_new ("()")); +} + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoPhonesimManagerProxy: + * + * The #OFONOOrgOfonoPhonesimManagerProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoPhonesimManagerProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoPhonesimManagerProxy. + */ + +struct _OFONOOrgOfonoPhonesimManagerProxyPrivate +{ + GData *qdata; +}; + +static void ofono_org_ofono_phonesim_manager_proxy_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface); + +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerProxy, ofono_org_ofono_phonesim_manager_proxy, G_TYPE_DBUS_PROXY, + G_ADD_PRIVATE (OFONOOrgOfonoPhonesimManagerProxy) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_proxy_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerProxy, ofono_org_ofono_phonesim_manager_proxy, G_TYPE_DBUS_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_proxy_iface_init)); + +#endif +static void +ofono_org_ofono_phonesim_manager_proxy_finalize (GObject *object) +{ + OFONOOrgOfonoPhonesimManagerProxy *proxy = OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY (object); + g_datalist_clear (&proxy->priv->qdata); + G_OBJECT_CLASS (ofono_org_ofono_phonesim_manager_proxy_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_phonesim_manager_proxy_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_phonesim_manager_proxy_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec G_GNUC_UNUSED) +{ +} + +static void +ofono_org_ofono_phonesim_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_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_manager_proxy_g_properties_changed (GDBusProxy *_proxy, + GVariant *changed_properties, + const gchar *const *invalidated_properties) +{ + OFONOOrgOfonoPhonesimManagerProxy *proxy = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_init (OFONOOrgOfonoPhonesimManagerProxy *proxy) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + proxy->priv = ofono_org_ofono_phonesim_manager_proxy_get_instance_private (proxy); +#else + proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyPrivate); +#endif + + g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_phonesim_manager_interface_info ()); +} + +static void +ofono_org_ofono_phonesim_manager_proxy_class_init (OFONOOrgOfonoPhonesimManagerProxyClass *klass) +{ + GObjectClass *gobject_class; + GDBusProxyClass *proxy_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_phonesim_manager_proxy_finalize; + gobject_class->get_property = ofono_org_ofono_phonesim_manager_proxy_get_property; + gobject_class->set_property = ofono_org_ofono_phonesim_manager_proxy_set_property; + + proxy_class = G_DBUS_PROXY_CLASS (klass); + proxy_class->g_signal = ofono_org_ofono_phonesim_manager_proxy_g_signal; + proxy_class->g_properties_changed = ofono_org_ofono_phonesim_manager_proxy_g_properties_changed; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoPhonesimManagerProxyPrivate)); +#endif +} + +static void +ofono_org_ofono_phonesim_manager_proxy_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface) +{ +} + +/** + * ofono_org_ofono_phonesim_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.phonesim.Manager. 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_org_ofono_phonesim_manager_proxy_new_finish() to get the result of the operation. + * + * See ofono_org_ofono_phonesim_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); +} + +/** + * ofono_org_ofono_phonesim_manager_proxy_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_proxy_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_phonesim_manager_proxy_new(). + * + * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoPhonesimManager * +ofono_org_ofono_phonesim_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_ORG_OFONO_PHONESIM_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_phonesim_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.phonesim.Manager. See g_dbus_proxy_new_sync() for more details. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_phonesim_manager_proxy_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoPhonesimManager * +ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.phonesim.Manager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); + else + return NULL; +} + + +/** + * ofono_org_ofono_phonesim_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_new_for_bus_finish() to get the result of the operation. + * + * See ofono_org_ofono_phonesim_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); +} + +/** + * ofono_org_ofono_phonesim_manager_proxy_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_proxy_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_org_ofono_phonesim_manager_proxy_new_for_bus(). + * + * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoPhonesimManager * +ofono_org_ofono_phonesim_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_ORG_OFONO_PHONESIM_MANAGER (ret); + else + return NULL; +} + +/** + * ofono_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + * + * The calling thread is blocked until a reply is received. + * + * See ofono_org_ofono_phonesim_manager_proxy_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. + */ +OFONOOrgOfonoPhonesimManager * +ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); + if (ret != NULL) + return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); + else + return NULL; +} + + +/* ------------------------------------------------------------------------ */ + +/** + * OFONOOrgOfonoPhonesimManagerSkeleton: + * + * The #OFONOOrgOfonoPhonesimManagerSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOOrgOfonoPhonesimManagerSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOOrgOfonoPhonesimManagerSkeleton. + */ + +struct _OFONOOrgOfonoPhonesimManagerSkeletonPrivate +{ + GValue *properties; + GList *changed_properties; + GSource *changed_properties_idle_source; + GMainContext *context; + GMutex lock; +}; + +static void +_ofono_org_ofono_phonesim_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) +{ + OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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) +{ + OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_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) +{ + OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_skeleton_vtable = +{ + _ofono_org_ofono_phonesim_manager_skeleton_handle_method_call, + _ofono_org_ofono_phonesim_manager_skeleton_handle_get_property, + _ofono_org_ofono_phonesim_manager_skeleton_handle_set_property, + {NULL} +}; + +static GDBusInterfaceInfo * +ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return ofono_org_ofono_phonesim_manager_interface_info (); +} + +static GDBusInterfaceVTable * +ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) +{ + return (GDBusInterfaceVTable *) &_ofono_org_ofono_phonesim_manager_skeleton_vtable; +} + +static GVariant * +ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) +{ + OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON (_skeleton); + + GVariantBuilder builder; + guint n; + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); + if (_ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties == NULL) + goto out; + for (n = 0; _ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties[n] != NULL; n++) + { + GDBusPropertyInfo *info = _ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties[n]; + if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) + { + GVariant *value; + value = _ofono_org_ofono_phonesim_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.phonesim.Manager", 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_org_ofono_phonesim_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) +{ +} + +static void ofono_org_ofono_phonesim_manager_skeleton_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface); +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerSkeleton, ofono_org_ofono_phonesim_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_ADD_PRIVATE (OFONOOrgOfonoPhonesimManagerSkeleton) + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_skeleton_iface_init)); + +#else +G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerSkeleton, ofono_org_ofono_phonesim_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_skeleton_iface_init)); + +#endif +static void +ofono_org_ofono_phonesim_manager_skeleton_finalize (GObject *object) +{ + OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_manager_skeleton_parent_class)->finalize (object); +} + +static void +ofono_org_ofono_phonesim_manager_skeleton_init (OFONOOrgOfonoPhonesimManagerSkeleton *skeleton) +{ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 + skeleton->priv = ofono_org_ofono_phonesim_manager_skeleton_get_instance_private (skeleton); +#else + skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonPrivate); +#endif + + g_mutex_init (&skeleton->priv->lock); + skeleton->priv->context = g_main_context_ref_thread_default (); +} + +static void +ofono_org_ofono_phonesim_manager_skeleton_class_init (OFONOOrgOfonoPhonesimManagerSkeletonClass *klass) +{ + GObjectClass *gobject_class; + GDBusInterfaceSkeletonClass *skeleton_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->finalize = ofono_org_ofono_phonesim_manager_skeleton_finalize; + + skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); + skeleton_class->get_info = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_info; + skeleton_class->get_properties = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_properties; + skeleton_class->flush = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_flush; + skeleton_class->get_vtable = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_vtable; + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 + g_type_class_add_private (klass, sizeof (OFONOOrgOfonoPhonesimManagerSkeletonPrivate)); +#endif +} + +static void +ofono_org_ofono_phonesim_manager_skeleton_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface) +{ +} + +/** + * ofono_org_ofono_phonesim_manager_skeleton_new: + * + * Creates a skeleton object for the D-Bus interface org.ofono.phonesim.Manager. + * + * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerSkeleton): The skeleton object. + */ +OFONOOrgOfonoPhonesimManager * +ofono_org_ofono_phonesim_manager_skeleton_new (void) +{ + return OFONO_ORG_OFONO_PHONESIM_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, NULL)); +} + +/* ------------------------------------------------------------------------ + * Code for Object, ObjectProxy and ObjectSkeleton + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOObject + * @title: OFONOObject + * @short_description: Specialized GDBusObject types + * + * This section contains the #OFONOObject, #OFONOObjectProxy, and #OFONOObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. + */ + +/** + * OFONOObject: + * + * The #OFONOObject type is a specialized container of interfaces. + */ + +/** + * OFONOObjectIface: + * @parent_iface: The parent interface. + * + * Virtual table for the #OFONOObject interface. + */ + +typedef OFONOObjectIface OFONOObjectInterface; +G_DEFINE_INTERFACE_WITH_CODE (OFONOObject, ofono_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT)); + +static void +ofono_object_default_init (OFONOObjectIface *iface) +{ + /** + * OFONOObject:org-freedesktop-dbus-introspectable: + * + * The #OFONOOrgFreedesktopDBusIntrospectable 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_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * OFONOObject:org-ofono-manager: + * + * The #OFONOOrgOfonoManager instance corresponding to the D-Bus interface org.ofono.Manager, 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-manager", "org-ofono-manager", "org-ofono-manager", OFONO_TYPE_ORG_OFONO_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * OFONOObject:org-ofono-handsfree-audio-manager: + * + * The #OFONOOrgOfonoHandsfreeAudioManager instance corresponding to the D-Bus interface org.ofono.HandsfreeAudioManager, 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-audio-manager", "org-ofono-handsfree-audio-manager", "org-ofono-handsfree-audio-manager", OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + + /** + * OFONOObject:org-ofono-phonesim-manager: + * + * The #OFONOOrgOfonoPhonesimManager instance corresponding to the D-Bus interface org.ofono.phonesim.Manager, 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-phonesim-manager", "org-ofono-phonesim-manager", "org-ofono-phonesim-manager", OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); + +} + +/** + * ofono_object_get_org_freedesktop_dbus_introspectable: + * @object: A #OFONOObject. + * + * Gets the #OFONOOrgFreedesktopDBusIntrospectable instance for the D-Bus interface org.freedesktop.DBus.Introspectable on @object, if any. + * + * Returns: (transfer full): A #OFONOOrgFreedesktopDBusIntrospectable that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +OFONOOrgFreedesktopDBusIntrospectable *ofono_object_get_org_freedesktop_dbus_introspectable (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable"); + if (ret == NULL) + return NULL; + return OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); +} + +/** + * ofono_object_get_org_ofono_manager: + * @object: A #OFONOObject. + * + * Gets the #OFONOOrgOfonoManager instance for the D-Bus interface org.ofono.Manager on @object, if any. + * + * Returns: (transfer full): A #OFONOOrgOfonoManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +OFONOOrgOfonoManager *ofono_object_get_org_ofono_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Manager"); + if (ret == NULL) + return NULL; + return OFONO_ORG_OFONO_MANAGER (ret); +} + +/** + * ofono_object_get_org_ofono_handsfree_audio_manager: + * @object: A #OFONOObject. + * + * Gets the #OFONOOrgOfonoHandsfreeAudioManager instance for the D-Bus interface org.ofono.HandsfreeAudioManager on @object, if any. + * + * Returns: (transfer full): A #OFONOOrgOfonoHandsfreeAudioManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +OFONOOrgOfonoHandsfreeAudioManager *ofono_object_get_org_ofono_handsfree_audio_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); + if (ret == NULL) + return NULL; + return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); +} + +/** + * ofono_object_get_org_ofono_phonesim_manager: + * @object: A #OFONOObject. + * + * Gets the #OFONOOrgOfonoPhonesimManager instance for the D-Bus interface org.ofono.phonesim.Manager on @object, if any. + * + * Returns: (transfer full): A #OFONOOrgOfonoPhonesimManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. + */ +OFONOOrgOfonoPhonesimManager *ofono_object_get_org_ofono_phonesim_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); + if (ret == NULL) + return NULL; + return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); +} + + +/** + * ofono_object_peek_org_freedesktop_dbus_introspectable: (skip) + * @object: A #OFONOObject. + * + * Like ofono_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 #OFONOOrgFreedesktopDBusIntrospectable or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +OFONOOrgFreedesktopDBusIntrospectable *ofono_object_peek_org_freedesktop_dbus_introspectable (OFONOObject *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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); +} + +/** + * ofono_object_peek_org_ofono_manager: (skip) + * @object: A #OFONOObject. + * + * Like ofono_object_get_org_ofono_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 #OFONOOrgOfonoManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +OFONOOrgOfonoManager *ofono_object_peek_org_ofono_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Manager"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return OFONO_ORG_OFONO_MANAGER (ret); +} + +/** + * ofono_object_peek_org_ofono_handsfree_audio_manager: (skip) + * @object: A #OFONOObject. + * + * Like ofono_object_get_org_ofono_handsfree_audio_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 #OFONOOrgOfonoHandsfreeAudioManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +OFONOOrgOfonoHandsfreeAudioManager *ofono_object_peek_org_ofono_handsfree_audio_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); +} + +/** + * ofono_object_peek_org_ofono_phonesim_manager: (skip) + * @object: A #OFONOObject. + * + * Like ofono_object_get_org_ofono_phonesim_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 #OFONOOrgOfonoPhonesimManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. + */ +OFONOOrgOfonoPhonesimManager *ofono_object_peek_org_ofono_phonesim_manager (OFONOObject *object) +{ + GDBusInterface *ret; + ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); + if (ret == NULL) + return NULL; + g_object_unref (ret); + return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); +} + + +static void +ofono_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); +} + +/** + * OFONOObjectProxy: + * + * The #OFONOObjectProxy structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOObjectProxyClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOObjectProxy. + */ + +static void +ofono_object_proxy__ofono_object_iface_init (OFONOObjectIface *iface G_GNUC_UNUSED) +{ +} + +static void +ofono_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = ofono_object_notify; + iface->interface_removed = ofono_object_notify; +} + + +G_DEFINE_TYPE_WITH_CODE (OFONOObjectProxy, ofono_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_OBJECT, ofono_object_proxy__ofono_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_object_proxy__g_dbus_object_iface_init)); + +static void +ofono_object_proxy_init (OFONOObjectProxy *object G_GNUC_UNUSED) +{ +} + +static void +ofono_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_object_proxy_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + OFONOObjectProxy *object = OFONO_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.Manager"); + g_value_take_object (value, interface); + break; + + case 3: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); + g_value_take_object (value, interface); + break; + + case 4: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +ofono_object_proxy_class_init (OFONOObjectProxyClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = ofono_object_proxy_set_property; + gobject_class->get_property = ofono_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-manager"); + g_object_class_override_property (gobject_class, 3, "org-ofono-handsfree-audio-manager"); + g_object_class_override_property (gobject_class, 4, "org-ofono-phonesim-manager"); +} + +/** + * ofono_object_proxy_new: + * @connection: A #GDBusConnection. + * @object_path: An object path. + * + * Creates a new proxy object. + * + * Returns: (transfer full): The proxy object. + */ +OFONOObjectProxy * +ofono_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_OBJECT_PROXY (g_object_new (OFONO_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); +} + +/** + * OFONOObjectSkeleton: + * + * The #OFONOObjectSkeleton structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOObjectSkeletonClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOObjectSkeleton. + */ + +static void +ofono_object_skeleton__ofono_object_iface_init (OFONOObjectIface *iface G_GNUC_UNUSED) +{ +} + + +static void +ofono_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) +{ + iface->interface_added = ofono_object_notify; + iface->interface_removed = ofono_object_notify; +} + +G_DEFINE_TYPE_WITH_CODE (OFONOObjectSkeleton, ofono_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, + G_IMPLEMENT_INTERFACE (OFONO_TYPE_OBJECT, ofono_object_skeleton__ofono_object_iface_init) + G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_object_skeleton__g_dbus_object_iface_init)); + +static void +ofono_object_skeleton_init (OFONOObjectSkeleton *object G_GNUC_UNUSED) +{ +} + +static void +ofono_object_skeleton_set_property (GObject *gobject, + guint prop_id, + const GValue *value, + GParamSpec *pspec) +{ + OFONOObjectSkeleton *object = OFONO_OBJECT_SKELETON (gobject); + GDBusInterfaceSkeleton *interface; + + switch (prop_id) + { + case 1: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (OFONO_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_IS_ORG_OFONO_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.Manager"); + } + break; + + case 3: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager"); + } + break; + + case 4: + interface = g_value_get_object (value); + if (interface != NULL) + { + g_warn_if_fail (OFONO_IS_ORG_OFONO_PHONESIM_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.phonesim.Manager"); + } + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +ofono_object_skeleton_get_property (GObject *gobject, + guint prop_id, + GValue *value, + GParamSpec *pspec) +{ + OFONOObjectSkeleton *object = OFONO_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.Manager"); + g_value_take_object (value, interface); + break; + + case 3: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); + g_value_take_object (value, interface); + break; + + case 4: + interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); + g_value_take_object (value, interface); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); + break; + } +} + +static void +ofono_object_skeleton_class_init (OFONOObjectSkeletonClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = ofono_object_skeleton_set_property; + gobject_class->get_property = ofono_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-manager"); + g_object_class_override_property (gobject_class, 3, "org-ofono-handsfree-audio-manager"); + g_object_class_override_property (gobject_class, 4, "org-ofono-phonesim-manager"); +} + +/** + * ofono_object_skeleton_new: + * @object_path: An object path. + * + * Creates a new skeleton object. + * + * Returns: (transfer full): The skeleton object. + */ +OFONOObjectSkeleton * +ofono_object_skeleton_new (const gchar *object_path) +{ + g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); + return OFONO_OBJECT_SKELETON (g_object_new (OFONO_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); +} + +/** + * ofono_object_skeleton_set_org_freedesktop_dbus_introspectable: + * @object: A #OFONOObjectSkeleton. + * @interface_: (allow-none): A #OFONOOrgFreedesktopDBusIntrospectable or %NULL to clear the interface. + * + * Sets the #OFONOOrgFreedesktopDBusIntrospectable instance for the D-Bus interface org.freedesktop.DBus.Introspectable on @object. + */ +void ofono_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOObjectSkeleton *object, OFONOOrgFreedesktopDBusIntrospectable *interface_) +{ + g_object_set (G_OBJECT (object), "org-freedesktop-dbus-introspectable", interface_, NULL); +} + +/** + * ofono_object_skeleton_set_org_ofono_manager: + * @object: A #OFONOObjectSkeleton. + * @interface_: (allow-none): A #OFONOOrgOfonoManager or %NULL to clear the interface. + * + * Sets the #OFONOOrgOfonoManager instance for the D-Bus interface org.ofono.Manager on @object. + */ +void ofono_object_skeleton_set_org_ofono_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoManager *interface_) +{ + g_object_set (G_OBJECT (object), "org-ofono-manager", interface_, NULL); +} + +/** + * ofono_object_skeleton_set_org_ofono_handsfree_audio_manager: + * @object: A #OFONOObjectSkeleton. + * @interface_: (allow-none): A #OFONOOrgOfonoHandsfreeAudioManager or %NULL to clear the interface. + * + * Sets the #OFONOOrgOfonoHandsfreeAudioManager instance for the D-Bus interface org.ofono.HandsfreeAudioManager on @object. + */ +void ofono_object_skeleton_set_org_ofono_handsfree_audio_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoHandsfreeAudioManager *interface_) +{ + g_object_set (G_OBJECT (object), "org-ofono-handsfree-audio-manager", interface_, NULL); +} + +/** + * ofono_object_skeleton_set_org_ofono_phonesim_manager: + * @object: A #OFONOObjectSkeleton. + * @interface_: (allow-none): A #OFONOOrgOfonoPhonesimManager or %NULL to clear the interface. + * + * Sets the #OFONOOrgOfonoPhonesimManager instance for the D-Bus interface org.ofono.phonesim.Manager on @object. + */ +void ofono_object_skeleton_set_org_ofono_phonesim_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoPhonesimManager *interface_) +{ + g_object_set (G_OBJECT (object), "org-ofono-phonesim-manager", interface_, NULL); +} + + +/* ------------------------------------------------------------------------ + * Code for ObjectManager client + * ------------------------------------------------------------------------ + */ + +/** + * SECTION:OFONOObjectManagerClient + * @title: OFONOObjectManagerClient + * @short_description: Generated GDBusObjectManagerClient type + * + * This section contains a #GDBusObjectManagerClient that uses ofono_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. + */ + +/** + * OFONOObjectManagerClient: + * + * The #OFONOObjectManagerClient structure contains only private data and should only be accessed using the provided API. + */ + +/** + * OFONOObjectManagerClientClass: + * @parent_class: The parent class. + * + * Class structure for #OFONOObjectManagerClient. + */ + +G_DEFINE_TYPE (OFONOObjectManagerClient, ofono_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT); + +static void +ofono_object_manager_client_init (OFONOObjectManagerClient *manager G_GNUC_UNUSED) +{ +} + +static void +ofono_object_manager_client_class_init (OFONOObjectManagerClientClass *klass G_GNUC_UNUSED) +{ +} + +/** + * ofono_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 #OFONOObjectProxy. + */ +GType +ofono_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_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_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.Manager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.HandsfreeAudioManager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)); + g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.phonesim.Manager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_PHONESIM_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_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_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_object_manager_client_new_finish() to get the result of the operation. + * + * See ofono_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_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_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_object_manager_client_get_proxy_type, NULL); +} + +/** + * ofono_object_manager_client_new_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_object_manager_client_new(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_object_manager_client_new(). + * + * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +ofono_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_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_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_object_manager_client_new() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +ofono_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_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", ofono_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + +/** + * ofono_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_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_object_manager_client_new_for_bus_finish() to get the result of the operation. + * + * See ofono_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. + */ +void +ofono_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_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_object_manager_client_get_proxy_type, NULL); +} + +/** + * ofono_object_manager_client_new_for_bus_finish: + * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_object_manager_client_new_for_bus(). + * @error: Return location for error or %NULL + * + * Finishes an operation started with ofono_object_manager_client_new_for_bus(). + * + * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +ofono_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_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_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_object_manager_client_new_for_bus() for the asynchronous version of this constructor. + * + * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. + */ +GDBusObjectManager * +ofono_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_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", ofono_object_manager_client_get_proxy_type, NULL); + if (ret != NULL) + return G_DBUS_OBJECT_MANAGER (ret); + else + return NULL; +} + + diff --git a/binding-bluetooth/lib_ofono.h b/binding-bluetooth/lib_ofono.h new file mode 100644 index 0000000..bdc946e --- /dev/null +++ b/binding-bluetooth/lib_ofono.h @@ -0,0 +1,981 @@ +/* + * 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. + */ + +#ifndef __LIB_OFONO_H__ +#define __LIB_OFONO_H__ + +#include + +G_BEGIN_DECLS + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.freedesktop.DBus.Introspectable */ + +#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ofono_org_freedesktop_dbus_introspectable_get_type ()) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectable)) +#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE)) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectableIface)) + +struct _OFONOOrgFreedesktopDBusIntrospectable; +typedef struct _OFONOOrgFreedesktopDBusIntrospectable OFONOOrgFreedesktopDBusIntrospectable; +typedef struct _OFONOOrgFreedesktopDBusIntrospectableIface OFONOOrgFreedesktopDBusIntrospectableIface; + +struct _OFONOOrgFreedesktopDBusIntrospectableIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_introspect) ( + OFONOOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation); + +}; + +GType ofono_org_freedesktop_dbus_introspectable_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_org_freedesktop_dbus_introspectable_interface_info (void); +guint ofono_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_org_freedesktop_dbus_introspectable_complete_introspect ( + OFONOOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation, + const gchar *xml); + + + +/* D-Bus method calls: */ +void ofono_org_freedesktop_dbus_introspectable_call_introspect ( + OFONOOrgFreedesktopDBusIntrospectable *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_finish ( + OFONOOrgFreedesktopDBusIntrospectable *proxy, + gchar **out_xml, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_sync ( + OFONOOrgFreedesktopDBusIntrospectable *proxy, + gchar **out_xml, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (ofono_org_freedesktop_dbus_introspectable_proxy_get_type ()) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxy)) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass)) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass)) +#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) +#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) + +typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxy OFONOOrgFreedesktopDBusIntrospectableProxy; +typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass OFONOOrgFreedesktopDBusIntrospectableProxyClass; +typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyPrivate OFONOOrgFreedesktopDBusIntrospectableProxyPrivate; + +struct _OFONOOrgFreedesktopDBusIntrospectableProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOOrgFreedesktopDBusIntrospectableProxyPrivate *priv; +}; + +struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_org_freedesktop_dbus_introspectable_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgFreedesktopDBusIntrospectableProxy, g_object_unref) +#endif + +void ofono_org_freedesktop_dbus_introspectable_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void ofono_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); +OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgFreedesktopDBusIntrospectable *ofono_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); + + +/* ---- */ + +#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (ofono_org_freedesktop_dbus_introspectable_skeleton_get_type ()) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeleton)) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass)) +#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass)) +#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) +#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) + +typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton OFONOOrgFreedesktopDBusIntrospectableSkeleton; +typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass OFONOOrgFreedesktopDBusIntrospectableSkeletonClass; +typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate; + +struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate *priv; +}; + +struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_org_freedesktop_dbus_introspectable_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgFreedesktopDBusIntrospectableSkeleton, g_object_unref) +#endif + +OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.Manager */ + +#define OFONO_TYPE_ORG_OFONO_MANAGER (ofono_org_ofono_manager_get_type ()) +#define OFONO_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManager)) +#define OFONO_IS_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER)) +#define OFONO_ORG_OFONO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManagerIface)) + +struct _OFONOOrgOfonoManager; +typedef struct _OFONOOrgOfonoManager OFONOOrgOfonoManager; +typedef struct _OFONOOrgOfonoManagerIface OFONOOrgOfonoManagerIface; + +struct _OFONOOrgOfonoManagerIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_modems) ( + OFONOOrgOfonoManager *object, + GDBusMethodInvocation *invocation); + + void (*modem_added) ( + OFONOOrgOfonoManager *object, + const gchar *arg_path, + GVariant *arg_properties); + + void (*modem_removed) ( + OFONOOrgOfonoManager *object, + const gchar *arg_path); + +}; + +GType ofono_org_ofono_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_org_ofono_manager_interface_info (void); +guint ofono_org_ofono_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_org_ofono_manager_complete_get_modems ( + OFONOOrgOfonoManager *object, + GDBusMethodInvocation *invocation, + GVariant *modems); + + + +/* D-Bus signal emissions functions: */ +void ofono_org_ofono_manager_emit_modem_added ( + OFONOOrgOfonoManager *object, + const gchar *arg_path, + GVariant *arg_properties); + +void ofono_org_ofono_manager_emit_modem_removed ( + OFONOOrgOfonoManager *object, + const gchar *arg_path); + + + +/* D-Bus method calls: */ +void ofono_org_ofono_manager_call_get_modems ( + OFONOOrgOfonoManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_manager_call_get_modems_finish ( + OFONOOrgOfonoManager *proxy, + GVariant **out_modems, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_manager_call_get_modems_sync ( + OFONOOrgOfonoManager *proxy, + GVariant **out_modems, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_MANAGER_PROXY (ofono_org_ofono_manager_proxy_get_type ()) +#define OFONO_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxy)) +#define OFONO_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass)) +#define OFONO_ORG_OFONO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass)) +#define OFONO_IS_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)) +#define OFONO_IS_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)) + +typedef struct _OFONOOrgOfonoManagerProxy OFONOOrgOfonoManagerProxy; +typedef struct _OFONOOrgOfonoManagerProxyClass OFONOOrgOfonoManagerProxyClass; +typedef struct _OFONOOrgOfonoManagerProxyPrivate OFONOOrgOfonoManagerProxyPrivate; + +struct _OFONOOrgOfonoManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOOrgOfonoManagerProxyPrivate *priv; +}; + +struct _OFONOOrgOfonoManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_org_ofono_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoManagerProxy, g_object_unref) +#endif + +void ofono_org_ofono_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON (ofono_org_ofono_manager_skeleton_get_type ()) +#define OFONO_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeleton)) +#define OFONO_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass)) +#define OFONO_ORG_OFONO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass)) +#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON)) +#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON)) + +typedef struct _OFONOOrgOfonoManagerSkeleton OFONOOrgOfonoManagerSkeleton; +typedef struct _OFONOOrgOfonoManagerSkeletonClass OFONOOrgOfonoManagerSkeletonClass; +typedef struct _OFONOOrgOfonoManagerSkeletonPrivate OFONOOrgOfonoManagerSkeletonPrivate; + +struct _OFONOOrgOfonoManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOOrgOfonoManagerSkeletonPrivate *priv; +}; + +struct _OFONOOrgOfonoManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_org_ofono_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoManagerSkeleton, g_object_unref) +#endif + +OFONOOrgOfonoManager *ofono_org_ofono_manager_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.HandsfreeAudioManager */ + +#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ofono_org_ofono_handsfree_audio_manager_get_type ()) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManager)) +#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER)) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManagerIface)) + +struct _OFONOOrgOfonoHandsfreeAudioManager; +typedef struct _OFONOOrgOfonoHandsfreeAudioManager OFONOOrgOfonoHandsfreeAudioManager; +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerIface OFONOOrgOfonoHandsfreeAudioManagerIface; + +struct _OFONOOrgOfonoHandsfreeAudioManagerIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_cards) ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_register) ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_path, + const gchar *arg_codecs); + + gboolean (*handle_unregister) ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_path); + + void (*card_added) ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path, + GVariant *arg_properties); + + void (*card_removed) ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path); + +}; + +GType ofono_org_ofono_handsfree_audio_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_org_ofono_handsfree_audio_manager_interface_info (void); +guint ofono_org_ofono_handsfree_audio_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_org_ofono_handsfree_audio_manager_complete_get_cards ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation, + GVariant *cards); + +void ofono_org_ofono_handsfree_audio_manager_complete_register ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation); + +void ofono_org_ofono_handsfree_audio_manager_complete_unregister ( + OFONOOrgOfonoHandsfreeAudioManager *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus signal emissions functions: */ +void ofono_org_ofono_handsfree_audio_manager_emit_card_added ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path, + GVariant *arg_properties); + +void ofono_org_ofono_handsfree_audio_manager_emit_card_removed ( + OFONOOrgOfonoHandsfreeAudioManager *object, + const gchar *arg_path); + + + +/* D-Bus method calls: */ +void ofono_org_ofono_handsfree_audio_manager_call_get_cards ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GVariant **out_cards, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GVariant **out_cards, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_handsfree_audio_manager_call_register ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + const gchar *arg_codecs, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_register_finish ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_register_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + const gchar *arg_codecs, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_handsfree_audio_manager_call_unregister ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_finish ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_sync ( + OFONOOrgOfonoHandsfreeAudioManager *proxy, + const gchar *arg_path, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY (ofono_org_ofono_handsfree_audio_manager_proxy_get_type ()) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxy)) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass)) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass)) +#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)) +#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)) + +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxy OFONOOrgOfonoHandsfreeAudioManagerProxy; +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass OFONOOrgOfonoHandsfreeAudioManagerProxyClass; +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate; + +struct _OFONOOrgOfonoHandsfreeAudioManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate *priv; +}; + +struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_org_ofono_handsfree_audio_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoHandsfreeAudioManagerProxy, g_object_unref) +#endif + +void ofono_org_ofono_handsfree_audio_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON (ofono_org_ofono_handsfree_audio_manager_skeleton_get_type ()) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeleton)) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass)) +#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass)) +#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON)) +#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON)) + +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton OFONOOrgOfonoHandsfreeAudioManagerSkeleton; +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass; +typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate; + +struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate *priv; +}; + +struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_org_ofono_handsfree_audio_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, g_object_unref) +#endif + +OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.phonesim.Manager */ + +#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER (ofono_org_ofono_phonesim_manager_get_type ()) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManager)) +#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER)) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManagerIface)) + +struct _OFONOOrgOfonoPhonesimManager; +typedef struct _OFONOOrgOfonoPhonesimManager OFONOOrgOfonoPhonesimManager; +typedef struct _OFONOOrgOfonoPhonesimManagerIface OFONOOrgOfonoPhonesimManagerIface; + +struct _OFONOOrgOfonoPhonesimManagerIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_add) ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_name, + const gchar *arg_address, + const gchar *arg_port); + + gboolean (*handle_remove_all) ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_reset) ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation); + +}; + +GType ofono_org_ofono_phonesim_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_org_ofono_phonesim_manager_interface_info (void); +guint ofono_org_ofono_phonesim_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_org_ofono_phonesim_manager_complete_add ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation); + +void ofono_org_ofono_phonesim_manager_complete_remove_all ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation); + +void ofono_org_ofono_phonesim_manager_complete_reset ( + OFONOOrgOfonoPhonesimManager *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus method calls: */ +void ofono_org_ofono_phonesim_manager_call_add ( + OFONOOrgOfonoPhonesimManager *proxy, + const gchar *arg_name, + const gchar *arg_address, + const gchar *arg_port, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_phonesim_manager_call_add_finish ( + OFONOOrgOfonoPhonesimManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_phonesim_manager_call_add_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + const gchar *arg_name, + const gchar *arg_address, + const gchar *arg_port, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_phonesim_manager_call_remove_all ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_phonesim_manager_call_remove_all_finish ( + OFONOOrgOfonoPhonesimManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_phonesim_manager_call_remove_all_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_phonesim_manager_call_reset ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_org_ofono_phonesim_manager_call_reset_finish ( + OFONOOrgOfonoPhonesimManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_org_ofono_phonesim_manager_call_reset_sync ( + OFONOOrgOfonoPhonesimManager *proxy, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY (ofono_org_ofono_phonesim_manager_proxy_get_type ()) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxy)) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass)) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass)) +#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY)) +#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY)) + +typedef struct _OFONOOrgOfonoPhonesimManagerProxy OFONOOrgOfonoPhonesimManagerProxy; +typedef struct _OFONOOrgOfonoPhonesimManagerProxyClass OFONOOrgOfonoPhonesimManagerProxyClass; +typedef struct _OFONOOrgOfonoPhonesimManagerProxyPrivate OFONOOrgOfonoPhonesimManagerProxyPrivate; + +struct _OFONOOrgOfonoPhonesimManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOOrgOfonoPhonesimManagerProxyPrivate *priv; +}; + +struct _OFONOOrgOfonoPhonesimManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_org_ofono_phonesim_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoPhonesimManagerProxy, g_object_unref) +#endif + +void ofono_org_ofono_phonesim_manager_proxy_new ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void ofono_org_ofono_phonesim_manager_proxy_new_for_bus ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_sync ( + GBusType bus_type, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +/* ---- */ + +#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON (ofono_org_ofono_phonesim_manager_skeleton_get_type ()) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeleton)) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass)) +#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass)) +#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON)) +#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON)) + +typedef struct _OFONOOrgOfonoPhonesimManagerSkeleton OFONOOrgOfonoPhonesimManagerSkeleton; +typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonClass OFONOOrgOfonoPhonesimManagerSkeletonClass; +typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonPrivate OFONOOrgOfonoPhonesimManagerSkeletonPrivate; + +struct _OFONOOrgOfonoPhonesimManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOOrgOfonoPhonesimManagerSkeletonPrivate *priv; +}; + +struct _OFONOOrgOfonoPhonesimManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_org_ofono_phonesim_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoPhonesimManagerSkeleton, g_object_unref) +#endif + +OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_skeleton_new (void); + + +/* ---- */ + +#define OFONO_TYPE_OBJECT (ofono_object_get_type ()) +#define OFONO_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT, OFONOObject)) +#define OFONO_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT)) +#define OFONO_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_OBJECT, OFONOObject)) + +struct _OFONOObject; +typedef struct _OFONOObject OFONOObject; +typedef struct _OFONOObjectIface OFONOObjectIface; + +struct _OFONOObjectIface +{ + GTypeInterface parent_iface; +}; + +GType ofono_object_get_type (void) G_GNUC_CONST; + +OFONOOrgFreedesktopDBusIntrospectable *ofono_object_get_org_freedesktop_dbus_introspectable (OFONOObject *object); +OFONOOrgOfonoManager *ofono_object_get_org_ofono_manager (OFONOObject *object); +OFONOOrgOfonoHandsfreeAudioManager *ofono_object_get_org_ofono_handsfree_audio_manager (OFONOObject *object); +OFONOOrgOfonoPhonesimManager *ofono_object_get_org_ofono_phonesim_manager (OFONOObject *object); +OFONOOrgFreedesktopDBusIntrospectable *ofono_object_peek_org_freedesktop_dbus_introspectable (OFONOObject *object); +OFONOOrgOfonoManager *ofono_object_peek_org_ofono_manager (OFONOObject *object); +OFONOOrgOfonoHandsfreeAudioManager *ofono_object_peek_org_ofono_handsfree_audio_manager (OFONOObject *object); +OFONOOrgOfonoPhonesimManager *ofono_object_peek_org_ofono_phonesim_manager (OFONOObject *object); + +#define OFONO_TYPE_OBJECT_PROXY (ofono_object_proxy_get_type ()) +#define OFONO_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxy)) +#define OFONO_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass)) +#define OFONO_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass)) +#define OFONO_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_PROXY)) +#define OFONO_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_PROXY)) + +typedef struct _OFONOObjectProxy OFONOObjectProxy; +typedef struct _OFONOObjectProxyClass OFONOObjectProxyClass; +typedef struct _OFONOObjectProxyPrivate OFONOObjectProxyPrivate; + +struct _OFONOObjectProxy +{ + /*< private >*/ + GDBusObjectProxy parent_instance; + OFONOObjectProxyPrivate *priv; +}; + +struct _OFONOObjectProxyClass +{ + GDBusObjectProxyClass parent_class; +}; + +GType ofono_object_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectProxy, g_object_unref) +#endif + +OFONOObjectProxy *ofono_object_proxy_new (GDBusConnection *connection, const gchar *object_path); + +#define OFONO_TYPE_OBJECT_SKELETON (ofono_object_skeleton_get_type ()) +#define OFONO_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeleton)) +#define OFONO_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass)) +#define OFONO_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass)) +#define OFONO_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_SKELETON)) +#define OFONO_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_SKELETON)) + +typedef struct _OFONOObjectSkeleton OFONOObjectSkeleton; +typedef struct _OFONOObjectSkeletonClass OFONOObjectSkeletonClass; +typedef struct _OFONOObjectSkeletonPrivate OFONOObjectSkeletonPrivate; + +struct _OFONOObjectSkeleton +{ + /*< private >*/ + GDBusObjectSkeleton parent_instance; + OFONOObjectSkeletonPrivate *priv; +}; + +struct _OFONOObjectSkeletonClass +{ + GDBusObjectSkeletonClass parent_class; +}; + +GType ofono_object_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectSkeleton, g_object_unref) +#endif + +OFONOObjectSkeleton *ofono_object_skeleton_new (const gchar *object_path); +void ofono_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOObjectSkeleton *object, OFONOOrgFreedesktopDBusIntrospectable *interface_); +void ofono_object_skeleton_set_org_ofono_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoManager *interface_); +void ofono_object_skeleton_set_org_ofono_handsfree_audio_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoHandsfreeAudioManager *interface_); +void ofono_object_skeleton_set_org_ofono_phonesim_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoPhonesimManager *interface_); + +/* ---- */ + +#define OFONO_TYPE_OBJECT_MANAGER_CLIENT (ofono_object_manager_client_get_type ()) +#define OFONO_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClient)) +#define OFONO_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass)) +#define OFONO_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass)) +#define OFONO_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT)) +#define OFONO_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT)) + +typedef struct _OFONOObjectManagerClient OFONOObjectManagerClient; +typedef struct _OFONOObjectManagerClientClass OFONOObjectManagerClientClass; +typedef struct _OFONOObjectManagerClientPrivate OFONOObjectManagerClientPrivate; + +struct _OFONOObjectManagerClient +{ + /*< private >*/ + GDBusObjectManagerClient parent_instance; + OFONOObjectManagerClientPrivate *priv; +}; + +struct _OFONOObjectManagerClientClass +{ + GDBusObjectManagerClientClass parent_class; +}; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectManagerClient, g_object_unref) +#endif + +GType ofono_object_manager_client_get_type (void) G_GNUC_CONST; + +GType ofono_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); + +void ofono_object_manager_client_new ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GDBusObjectManager *ofono_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *ofono_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +void ofono_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); +GDBusObjectManager *ofono_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *ofono_object_manager_client_new_for_bus_sync ( + GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + + +G_END_DECLS + +#endif /* __LIB_OFONO_H__ */ diff --git a/binding-bluetooth/lib_ofono_modem.c b/binding-bluetooth/lib_ofono_modem.c new file mode 100644 index 0000000..e30eaa0 --- /dev/null +++ b/binding-bluetooth/lib_ofono_modem.c @@ -0,0 +1,11664 @@ +/* + * Generated by gdbus-codegen 2.48.1. DO NOT EDIT. + * + * The license of this code is the same as for the source it was derived from. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "lib_ofono_modem.h" + +#include +#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; +} + + diff --git a/binding-bluetooth/lib_ofono_modem.h b/binding-bluetooth/lib_ofono_modem.h new file mode 100644 index 0000000..de8f6b1 --- /dev/null +++ b/binding-bluetooth/lib_ofono_modem.h @@ -0,0 +1,1941 @@ +/* + * 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. + */ + +#ifndef __LIB_OFONO_MODEM_H__ +#define __LIB_OFONO_MODEM_H__ + +#include + +G_BEGIN_DECLS + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.freedesktop.DBus.Introspectable */ + +#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ofono_modem_org_freedesktop_dbus_introspectable_get_type ()) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOMODEMOrgFreedesktopDBusIntrospectable)) +#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE)) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOMODEMOrgFreedesktopDBusIntrospectableIface)) + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectable; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectable OFONOMODEMOrgFreedesktopDBusIntrospectable; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableIface OFONOMODEMOrgFreedesktopDBusIntrospectableIface; + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableIface +{ + GTypeInterface parent_iface; + + gboolean (*handle_introspect) ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation); + +}; + +GType ofono_modem_org_freedesktop_dbus_introspectable_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_freedesktop_dbus_introspectable_interface_info (void); +guint ofono_modem_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_freedesktop_dbus_introspectable_complete_introspect ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *object, + GDBusMethodInvocation *invocation, + const gchar *xml); + + + +/* D-Bus method calls: */ +void ofono_modem_org_freedesktop_dbus_introspectable_call_introspect ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_finish ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, + gchar **out_xml, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_sync ( + OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, + gchar **out_xml, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_type ()) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxy)) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass)) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass)) +#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) +#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) + +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxy OFONOMODEMOrgFreedesktopDBusIntrospectableProxy; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate; + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_finish ( + GAsyncResult *res, + GError **error); +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); + +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); +OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (ofono_modem_org_freedesktop_dbus_introspectable_skeleton_get_type ()) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton)) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass)) +#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass)) +#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) +#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) + +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass; +typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate; + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_freedesktop_dbus_introspectable_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.Modem */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM (ofono_modem_org_ofono_modem_get_type ()) +#define OFONO_MODEM_ORG_OFONO_MODEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM, OFONOMODEMOrgOfonoModem)) +#define OFONO_MODEM_IS_ORG_OFONO_MODEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM)) +#define OFONO_MODEM_ORG_OFONO_MODEM_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM, OFONOMODEMOrgOfonoModemIface)) + +struct _OFONOMODEMOrgOfonoModem; +typedef struct _OFONOMODEMOrgOfonoModem OFONOMODEMOrgOfonoModem; +typedef struct _OFONOMODEMOrgOfonoModemIface OFONOMODEMOrgOfonoModemIface; + +struct _OFONOMODEMOrgOfonoModemIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_properties) ( + OFONOMODEMOrgOfonoModem *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_set_property) ( + OFONOMODEMOrgOfonoModem *object, + GDBusMethodInvocation *invocation, + const gchar *arg_property, + GVariant *arg_value); + + void (*property_changed) ( + OFONOMODEMOrgOfonoModem *object, + const gchar *arg_name, + GVariant *arg_value); + +}; + +GType ofono_modem_org_ofono_modem_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_modem_interface_info (void); +guint ofono_modem_org_ofono_modem_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_modem_complete_get_properties ( + OFONOMODEMOrgOfonoModem *object, + GDBusMethodInvocation *invocation, + GVariant *properties); + +void ofono_modem_org_ofono_modem_complete_set_property ( + OFONOMODEMOrgOfonoModem *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_modem_emit_property_changed ( + OFONOMODEMOrgOfonoModem *object, + const gchar *arg_name, + GVariant *arg_value); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_modem_call_get_properties ( + OFONOMODEMOrgOfonoModem *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_modem_call_get_properties_finish ( + OFONOMODEMOrgOfonoModem *proxy, + GVariant **out_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_modem_call_get_properties_sync ( + OFONOMODEMOrgOfonoModem *proxy, + GVariant **out_properties, + GCancellable *cancellable, + GError **error); + +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); + +gboolean ofono_modem_org_ofono_modem_call_set_property_finish ( + OFONOMODEMOrgOfonoModem *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_modem_call_set_property_sync ( + OFONOMODEMOrgOfonoModem *proxy, + const gchar *arg_property, + GVariant *arg_value, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY (ofono_modem_org_ofono_modem_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxy)) +#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxyClass)) +#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_MODEM_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_MODEM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoModemProxy OFONOMODEMOrgOfonoModemProxy; +typedef struct _OFONOMODEMOrgOfonoModemProxyClass OFONOMODEMOrgOfonoModemProxyClass; +typedef struct _OFONOMODEMOrgOfonoModemProxyPrivate OFONOMODEMOrgOfonoModemProxyPrivate; + +struct _OFONOMODEMOrgOfonoModemProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoModemProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoModemProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_modem_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoModemProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +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); +OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON (ofono_modem_org_ofono_modem_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeleton)) +#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_MODEM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_MODEM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoModemSkeleton OFONOMODEMOrgOfonoModemSkeleton; +typedef struct _OFONOMODEMOrgOfonoModemSkeletonClass OFONOMODEMOrgOfonoModemSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoModemSkeletonPrivate OFONOMODEMOrgOfonoModemSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoModemSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoModemSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoModemSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_modem_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoModemSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.NetworkTime */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME (ofono_modem_org_ofono_network_time_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, OFONOMODEMOrgOfonoNetworkTime)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, OFONOMODEMOrgOfonoNetworkTimeIface)) + +struct _OFONOMODEMOrgOfonoNetworkTime; +typedef struct _OFONOMODEMOrgOfonoNetworkTime OFONOMODEMOrgOfonoNetworkTime; +typedef struct _OFONOMODEMOrgOfonoNetworkTimeIface OFONOMODEMOrgOfonoNetworkTimeIface; + +struct _OFONOMODEMOrgOfonoNetworkTimeIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_network_time) ( + OFONOMODEMOrgOfonoNetworkTime *object, + GDBusMethodInvocation *invocation); + + void (*network_time_changed) ( + OFONOMODEMOrgOfonoNetworkTime *object, + GVariant *arg_time); + +}; + +GType ofono_modem_org_ofono_network_time_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_network_time_interface_info (void); +guint ofono_modem_org_ofono_network_time_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_network_time_complete_get_network_time ( + OFONOMODEMOrgOfonoNetworkTime *object, + GDBusMethodInvocation *invocation, + GVariant *time); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_network_time_emit_network_time_changed ( + OFONOMODEMOrgOfonoNetworkTime *object, + GVariant *arg_time); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_network_time_call_get_network_time ( + OFONOMODEMOrgOfonoNetworkTime *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_network_time_call_get_network_time_finish ( + OFONOMODEMOrgOfonoNetworkTime *proxy, + GVariant **out_time, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_network_time_call_get_network_time_sync ( + OFONOMODEMOrgOfonoNetworkTime *proxy, + GVariant **out_time, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY (ofono_modem_org_ofono_network_time_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxy)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxyClass)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxy OFONOMODEMOrgOfonoNetworkTimeProxy; +typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxyClass OFONOMODEMOrgOfonoNetworkTimeProxyClass; +typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxyPrivate OFONOMODEMOrgOfonoNetworkTimeProxyPrivate; + +struct _OFONOMODEMOrgOfonoNetworkTimeProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoNetworkTimeProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoNetworkTimeProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_network_time_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkTimeProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_proxy_new_finish ( + GAsyncResult *res, + GError **error); +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); + +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); +OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON (ofono_modem_org_ofono_network_time_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeleton)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeleton OFONOMODEMOrgOfonoNetworkTimeSkeleton; +typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonClass OFONOMODEMOrgOfonoNetworkTimeSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoNetworkTimeSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_network_time_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkTimeSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.NetworkRegistration */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION (ofono_modem_org_ofono_network_registration_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, OFONOMODEMOrgOfonoNetworkRegistration)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, OFONOMODEMOrgOfonoNetworkRegistrationIface)) + +struct _OFONOMODEMOrgOfonoNetworkRegistration; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistration OFONOMODEMOrgOfonoNetworkRegistration; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationIface OFONOMODEMOrgOfonoNetworkRegistrationIface; + +struct _OFONOMODEMOrgOfonoNetworkRegistrationIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_operators) ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_get_properties) ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_register) ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_scan) ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation); + + void (*property_changed) ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + const gchar *arg_name, + GVariant *arg_value); + +}; + +GType ofono_modem_org_ofono_network_registration_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_network_registration_interface_info (void); +guint ofono_modem_org_ofono_network_registration_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_network_registration_complete_get_properties ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation, + GVariant *properties); + +void ofono_modem_org_ofono_network_registration_complete_register ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_network_registration_complete_get_operators ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation, + GVariant *operators_with_properties); + +void ofono_modem_org_ofono_network_registration_complete_scan ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + GDBusMethodInvocation *invocation, + GVariant *operators_with_properties); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_network_registration_emit_property_changed ( + OFONOMODEMOrgOfonoNetworkRegistration *object, + const gchar *arg_name, + GVariant *arg_value); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_network_registration_call_get_properties ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_network_registration_call_get_properties_finish ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_network_registration_call_get_properties_sync ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_properties, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_network_registration_call_register ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_network_registration_call_register_finish ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_network_registration_call_register_sync ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_network_registration_call_get_operators ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_network_registration_call_get_operators_finish ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_operators_with_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_network_registration_call_get_operators_sync ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_operators_with_properties, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_network_registration_call_scan ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_network_registration_call_scan_finish ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_operators_with_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_network_registration_call_scan_sync ( + OFONOMODEMOrgOfonoNetworkRegistration *proxy, + GVariant **out_operators_with_properties, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY (ofono_modem_org_ofono_network_registration_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxy)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxyClass)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxy OFONOMODEMOrgOfonoNetworkRegistrationProxy; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyClass OFONOMODEMOrgOfonoNetworkRegistrationProxyClass; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate; + +struct _OFONOMODEMOrgOfonoNetworkRegistrationProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_network_registration_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkRegistrationProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_proxy_new_finish ( + GAsyncResult *res, + GError **error); +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); + +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); +OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (ofono_modem_org_ofono_network_registration_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeleton)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeleton OFONOMODEMOrgOfonoNetworkRegistrationSkeleton; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_network_registration_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.Handsfree */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE (ofono_modem_org_ofono_handsfree_get_type ()) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, OFONOMODEMOrgOfonoHandsfree)) +#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE)) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, OFONOMODEMOrgOfonoHandsfreeIface)) + +struct _OFONOMODEMOrgOfonoHandsfree; +typedef struct _OFONOMODEMOrgOfonoHandsfree OFONOMODEMOrgOfonoHandsfree; +typedef struct _OFONOMODEMOrgOfonoHandsfreeIface OFONOMODEMOrgOfonoHandsfreeIface; + +struct _OFONOMODEMOrgOfonoHandsfreeIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_properties) ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_request_phone_number) ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_set_property) ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation, + const gchar *arg_property, + GVariant *arg_value); + + void (*property_changed) ( + OFONOMODEMOrgOfonoHandsfree *object, + const gchar *arg_name, + GVariant *arg_value); + +}; + +GType ofono_modem_org_ofono_handsfree_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_handsfree_interface_info (void); +guint ofono_modem_org_ofono_handsfree_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_handsfree_complete_get_properties ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation, + GVariant *properties); + +void ofono_modem_org_ofono_handsfree_complete_set_property ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_handsfree_complete_request_phone_number ( + OFONOMODEMOrgOfonoHandsfree *object, + GDBusMethodInvocation *invocation, + const gchar *number); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_handsfree_emit_property_changed ( + OFONOMODEMOrgOfonoHandsfree *object, + const gchar *arg_name, + GVariant *arg_value); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_handsfree_call_get_properties ( + OFONOMODEMOrgOfonoHandsfree *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_handsfree_call_get_properties_finish ( + OFONOMODEMOrgOfonoHandsfree *proxy, + GVariant **out_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_handsfree_call_get_properties_sync ( + OFONOMODEMOrgOfonoHandsfree *proxy, + GVariant **out_properties, + GCancellable *cancellable, + GError **error); + +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); + +gboolean ofono_modem_org_ofono_handsfree_call_set_property_finish ( + OFONOMODEMOrgOfonoHandsfree *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_handsfree_call_set_property_sync ( + OFONOMODEMOrgOfonoHandsfree *proxy, + const gchar *arg_property, + GVariant *arg_value, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_handsfree_call_request_phone_number ( + OFONOMODEMOrgOfonoHandsfree *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_handsfree_call_request_phone_number_finish ( + OFONOMODEMOrgOfonoHandsfree *proxy, + gchar **out_number, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_handsfree_call_request_phone_number_sync ( + OFONOMODEMOrgOfonoHandsfree *proxy, + gchar **out_number, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY (ofono_modem_org_ofono_handsfree_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxy)) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxyClass)) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoHandsfreeProxy OFONOMODEMOrgOfonoHandsfreeProxy; +typedef struct _OFONOMODEMOrgOfonoHandsfreeProxyClass OFONOMODEMOrgOfonoHandsfreeProxyClass; +typedef struct _OFONOMODEMOrgOfonoHandsfreeProxyPrivate OFONOMODEMOrgOfonoHandsfreeProxyPrivate; + +struct _OFONOMODEMOrgOfonoHandsfreeProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoHandsfreeProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoHandsfreeProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_handsfree_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoHandsfreeProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_finish ( + GAsyncResult *res, + GError **error); +OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_sync ( + GDBusConnection *connection, + GDBusProxyFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +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); +OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON (ofono_modem_org_ofono_handsfree_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeleton)) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeleton OFONOMODEMOrgOfonoHandsfreeSkeleton; +typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeletonClass OFONOMODEMOrgOfonoHandsfreeSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoHandsfreeSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoHandsfreeSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_handsfree_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoHandsfreeSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.CallVolume */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME (ofono_modem_org_ofono_call_volume_get_type ()) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, OFONOMODEMOrgOfonoCallVolume)) +#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME)) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, OFONOMODEMOrgOfonoCallVolumeIface)) + +struct _OFONOMODEMOrgOfonoCallVolume; +typedef struct _OFONOMODEMOrgOfonoCallVolume OFONOMODEMOrgOfonoCallVolume; +typedef struct _OFONOMODEMOrgOfonoCallVolumeIface OFONOMODEMOrgOfonoCallVolumeIface; + +struct _OFONOMODEMOrgOfonoCallVolumeIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_get_properties) ( + OFONOMODEMOrgOfonoCallVolume *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_set_property) ( + OFONOMODEMOrgOfonoCallVolume *object, + GDBusMethodInvocation *invocation, + const gchar *arg_property, + GVariant *arg_value); + + void (*property_changed) ( + OFONOMODEMOrgOfonoCallVolume *object, + const gchar *arg_property, + GVariant *arg_value); + +}; + +GType ofono_modem_org_ofono_call_volume_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_call_volume_interface_info (void); +guint ofono_modem_org_ofono_call_volume_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_call_volume_complete_get_properties ( + OFONOMODEMOrgOfonoCallVolume *object, + GDBusMethodInvocation *invocation, + GVariant *properties); + +void ofono_modem_org_ofono_call_volume_complete_set_property ( + OFONOMODEMOrgOfonoCallVolume *object, + GDBusMethodInvocation *invocation); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_call_volume_emit_property_changed ( + OFONOMODEMOrgOfonoCallVolume *object, + const gchar *arg_property, + GVariant *arg_value); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_call_volume_call_get_properties ( + OFONOMODEMOrgOfonoCallVolume *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_call_volume_call_get_properties_finish ( + OFONOMODEMOrgOfonoCallVolume *proxy, + GVariant **out_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_call_volume_call_get_properties_sync ( + OFONOMODEMOrgOfonoCallVolume *proxy, + GVariant **out_properties, + GCancellable *cancellable, + GError **error); + +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); + +gboolean ofono_modem_org_ofono_call_volume_call_set_property_finish ( + OFONOMODEMOrgOfonoCallVolume *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_call_volume_call_set_property_sync ( + OFONOMODEMOrgOfonoCallVolume *proxy, + const gchar *arg_property, + GVariant *arg_value, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY (ofono_modem_org_ofono_call_volume_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxy)) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxyClass)) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoCallVolumeProxy OFONOMODEMOrgOfonoCallVolumeProxy; +typedef struct _OFONOMODEMOrgOfonoCallVolumeProxyClass OFONOMODEMOrgOfonoCallVolumeProxyClass; +typedef struct _OFONOMODEMOrgOfonoCallVolumeProxyPrivate OFONOMODEMOrgOfonoCallVolumeProxyPrivate; + +struct _OFONOMODEMOrgOfonoCallVolumeProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoCallVolumeProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoCallVolumeProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_call_volume_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoCallVolumeProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_proxy_new_finish ( + GAsyncResult *res, + GError **error); +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); + +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); +OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON (ofono_modem_org_ofono_call_volume_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeleton)) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeleton OFONOMODEMOrgOfonoCallVolumeSkeleton; +typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeletonClass OFONOMODEMOrgOfonoCallVolumeSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoCallVolumeSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoCallVolumeSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_call_volume_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoCallVolumeSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_skeleton_new (void); + + +/* ------------------------------------------------------------------------ */ +/* Declarations for org.ofono.VoiceCallManager */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER (ofono_modem_org_ofono_voice_call_manager_get_type ()) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, OFONOMODEMOrgOfonoVoiceCallManager)) +#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER)) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, OFONOMODEMOrgOfonoVoiceCallManagerIface)) + +struct _OFONOMODEMOrgOfonoVoiceCallManager; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManager OFONOMODEMOrgOfonoVoiceCallManager; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerIface OFONOMODEMOrgOfonoVoiceCallManagerIface; + +struct _OFONOMODEMOrgOfonoVoiceCallManagerIface +{ + GTypeInterface parent_iface; + + + gboolean (*handle_create_multiparty) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_dial) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_number, + const gchar *arg_hide_callerid); + + gboolean (*handle_get_calls) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_get_properties) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_hangup_all) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_hangup_multiparty) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_hold_and_answer) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_private_chat) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_call); + + gboolean (*handle_release_and_answer) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_release_and_swap) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_send_tones) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *arg_SendTones); + + gboolean (*handle_swap_calls) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + gboolean (*handle_transfer) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + + void (*barring_active) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_type); + + void (*call_added) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_path, + GVariant *arg_properties); + + void (*call_removed) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_path); + + void (*forwarded) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_type); + + void (*property_changed) ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_name, + GVariant *arg_value); + +}; + +GType ofono_modem_org_ofono_voice_call_manager_get_type (void) G_GNUC_CONST; + +GDBusInterfaceInfo *ofono_modem_org_ofono_voice_call_manager_interface_info (void); +guint ofono_modem_org_ofono_voice_call_manager_override_properties (GObjectClass *klass, guint property_id_begin); + + +/* D-Bus method call completion functions: */ +void ofono_modem_org_ofono_voice_call_manager_complete_get_properties ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + GVariant *properties); + +void ofono_modem_org_ofono_voice_call_manager_complete_dial ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *path); + +void ofono_modem_org_ofono_voice_call_manager_complete_transfer ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_swap_calls ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_release_and_answer ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_release_and_swap ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_hold_and_answer ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_hangup_all ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_private_chat ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *const *calls); + +void ofono_modem_org_ofono_voice_call_manager_complete_create_multiparty ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + const gchar *calls); + +void ofono_modem_org_ofono_voice_call_manager_complete_hangup_multiparty ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_send_tones ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation); + +void ofono_modem_org_ofono_voice_call_manager_complete_get_calls ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + GDBusMethodInvocation *invocation, + GVariant *calls_with_properties); + + + +/* D-Bus signal emissions functions: */ +void ofono_modem_org_ofono_voice_call_manager_emit_forwarded ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_type); + +void ofono_modem_org_ofono_voice_call_manager_emit_barring_active ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_type); + +void ofono_modem_org_ofono_voice_call_manager_emit_property_changed ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_name, + GVariant *arg_value); + +void ofono_modem_org_ofono_voice_call_manager_emit_call_added ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_path, + GVariant *arg_properties); + +void ofono_modem_org_ofono_voice_call_manager_emit_call_removed ( + OFONOMODEMOrgOfonoVoiceCallManager *object, + const gchar *arg_path); + + + +/* D-Bus method calls: */ +void ofono_modem_org_ofono_voice_call_manager_call_get_properties ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_get_properties_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GVariant **out_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_get_properties_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GVariant **out_properties, + GCancellable *cancellable, + GError **error); + +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); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_dial_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + gchar **out_path, + GAsyncResult *res, + GError **error); + +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); + +void ofono_modem_org_ofono_voice_call_manager_call_transfer ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_transfer_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_transfer_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_swap_calls ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_swap_calls_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_swap_calls_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_release_and_answer ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_release_and_swap ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_hangup_all ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_all_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_all_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_private_chat ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + const gchar *arg_call, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_private_chat_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + gchar ***out_calls, + GAsyncResult *res, + GError **error); + +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); + +void ofono_modem_org_ofono_voice_call_manager_call_create_multiparty ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + gchar **out_calls, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + gchar **out_calls, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_send_tones ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + const gchar *arg_SendTones, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_send_tones_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_send_tones_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + const gchar *arg_SendTones, + GCancellable *cancellable, + GError **error); + +void ofono_modem_org_ofono_voice_call_manager_call_get_calls ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_get_calls_finish ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GVariant **out_calls_with_properties, + GAsyncResult *res, + GError **error); + +gboolean ofono_modem_org_ofono_voice_call_manager_call_get_calls_sync ( + OFONOMODEMOrgOfonoVoiceCallManager *proxy, + GVariant **out_calls_with_properties, + GCancellable *cancellable, + GError **error); + + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY (ofono_modem_org_ofono_voice_call_manager_proxy_get_type ()) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxy)) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxyClass)) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxyClass)) +#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY)) +#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY)) + +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxy OFONOMODEMOrgOfonoVoiceCallManagerProxy; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyClass OFONOMODEMOrgOfonoVoiceCallManagerProxyClass; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate; + +struct _OFONOMODEMOrgOfonoVoiceCallManagerProxy +{ + /*< private >*/ + GDBusProxy parent_instance; + OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyClass +{ + GDBusProxyClass parent_class; +}; + +GType ofono_modem_org_ofono_voice_call_manager_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoVoiceCallManagerProxy, g_object_unref) +#endif + +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); +OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_proxy_new_finish ( + GAsyncResult *res, + GError **error); +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); + +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); +OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (ofono_modem_org_ofono_voice_call_manager_skeleton_get_type ()) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeleton)) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass)) +#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass)) +#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON)) +#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON)) + +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeleton OFONOMODEMOrgOfonoVoiceCallManagerSkeleton; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass; +typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate; + +struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeleton +{ + /*< private >*/ + GDBusInterfaceSkeleton parent_instance; + OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate *priv; +}; + +struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass +{ + GDBusInterfaceSkeletonClass parent_class; +}; + +GType ofono_modem_org_ofono_voice_call_manager_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton, g_object_unref) +#endif + +OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_skeleton_new (void); + + +/* ---- */ + +#define OFONO_MODEM_TYPE_OBJECT (ofono_modem_object_get_type ()) +#define OFONO_MODEM_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT, OFONOMODEMObject)) +#define OFONO_MODEM_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT)) +#define OFONO_MODEM_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_OBJECT, OFONOMODEMObject)) + +struct _OFONOMODEMObject; +typedef struct _OFONOMODEMObject OFONOMODEMObject; +typedef struct _OFONOMODEMObjectIface OFONOMODEMObjectIface; + +struct _OFONOMODEMObjectIface +{ + GTypeInterface parent_iface; +}; + +GType ofono_modem_object_get_type (void) G_GNUC_CONST; + +OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_get_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoModem *ofono_modem_object_get_org_ofono_modem (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_get_org_ofono_network_time (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_get_org_ofono_network_registration (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_get_org_ofono_handsfree (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_get_org_ofono_call_volume (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_get_org_ofono_voice_call_manager (OFONOMODEMObject *object); +OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_peek_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoModem *ofono_modem_object_peek_org_ofono_modem (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_peek_org_ofono_network_time (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_peek_org_ofono_network_registration (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_peek_org_ofono_handsfree (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_peek_org_ofono_call_volume (OFONOMODEMObject *object); +OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_peek_org_ofono_voice_call_manager (OFONOMODEMObject *object); + +#define OFONO_MODEM_TYPE_OBJECT_PROXY (ofono_modem_object_proxy_get_type ()) +#define OFONO_MODEM_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxy)) +#define OFONO_MODEM_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxyClass)) +#define OFONO_MODEM_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxyClass)) +#define OFONO_MODEM_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_PROXY)) +#define OFONO_MODEM_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_PROXY)) + +typedef struct _OFONOMODEMObjectProxy OFONOMODEMObjectProxy; +typedef struct _OFONOMODEMObjectProxyClass OFONOMODEMObjectProxyClass; +typedef struct _OFONOMODEMObjectProxyPrivate OFONOMODEMObjectProxyPrivate; + +struct _OFONOMODEMObjectProxy +{ + /*< private >*/ + GDBusObjectProxy parent_instance; + OFONOMODEMObjectProxyPrivate *priv; +}; + +struct _OFONOMODEMObjectProxyClass +{ + GDBusObjectProxyClass parent_class; +}; + +GType ofono_modem_object_proxy_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectProxy, g_object_unref) +#endif + +OFONOMODEMObjectProxy *ofono_modem_object_proxy_new (GDBusConnection *connection, const gchar *object_path); + +#define OFONO_MODEM_TYPE_OBJECT_SKELETON (ofono_modem_object_skeleton_get_type ()) +#define OFONO_MODEM_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeleton)) +#define OFONO_MODEM_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeletonClass)) +#define OFONO_MODEM_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeletonClass)) +#define OFONO_MODEM_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON)) +#define OFONO_MODEM_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_SKELETON)) + +typedef struct _OFONOMODEMObjectSkeleton OFONOMODEMObjectSkeleton; +typedef struct _OFONOMODEMObjectSkeletonClass OFONOMODEMObjectSkeletonClass; +typedef struct _OFONOMODEMObjectSkeletonPrivate OFONOMODEMObjectSkeletonPrivate; + +struct _OFONOMODEMObjectSkeleton +{ + /*< private >*/ + GDBusObjectSkeleton parent_instance; + OFONOMODEMObjectSkeletonPrivate *priv; +}; + +struct _OFONOMODEMObjectSkeletonClass +{ + GDBusObjectSkeletonClass parent_class; +}; + +GType ofono_modem_object_skeleton_get_type (void) G_GNUC_CONST; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectSkeleton, g_object_unref) +#endif + +OFONOMODEMObjectSkeleton *ofono_modem_object_skeleton_new (const gchar *object_path); +void ofono_modem_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgFreedesktopDBusIntrospectable *interface_); +void ofono_modem_object_skeleton_set_org_ofono_modem (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoModem *interface_); +void ofono_modem_object_skeleton_set_org_ofono_network_time (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkTime *interface_); +void ofono_modem_object_skeleton_set_org_ofono_network_registration (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkRegistration *interface_); +void ofono_modem_object_skeleton_set_org_ofono_handsfree (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoHandsfree *interface_); +void ofono_modem_object_skeleton_set_org_ofono_call_volume (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoCallVolume *interface_); +void ofono_modem_object_skeleton_set_org_ofono_voice_call_manager (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoVoiceCallManager *interface_); + +/* ---- */ + +#define OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT (ofono_modem_object_manager_client_get_type ()) +#define OFONO_MODEM_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClient)) +#define OFONO_MODEM_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClientClass)) +#define OFONO_MODEM_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClientClass)) +#define OFONO_MODEM_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT)) +#define OFONO_MODEM_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT)) + +typedef struct _OFONOMODEMObjectManagerClient OFONOMODEMObjectManagerClient; +typedef struct _OFONOMODEMObjectManagerClientClass OFONOMODEMObjectManagerClientClass; +typedef struct _OFONOMODEMObjectManagerClientPrivate OFONOMODEMObjectManagerClientPrivate; + +struct _OFONOMODEMObjectManagerClient +{ + /*< private >*/ + GDBusObjectManagerClient parent_instance; + OFONOMODEMObjectManagerClientPrivate *priv; +}; + +struct _OFONOMODEMObjectManagerClientClass +{ + GDBusObjectManagerClientClass parent_class; +}; + +#if GLIB_CHECK_VERSION(2, 44, 0) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectManagerClient, g_object_unref) +#endif + +GType ofono_modem_object_manager_client_get_type (void) G_GNUC_CONST; + +GType ofono_modem_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); + +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); +GDBusObjectManager *ofono_modem_object_manager_client_new_finish ( + GAsyncResult *res, + GError **error); +GDBusObjectManager *ofono_modem_object_manager_client_new_sync ( + GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GCancellable *cancellable, + GError **error); + +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); +GDBusObjectManager *ofono_modem_object_manager_client_new_for_bus_finish ( + GAsyncResult *res, + GError **error); +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); + + +G_END_DECLS + +#endif /* __LIB_OFONO_MODEM_H__ */ diff --git a/binding-bluetooth/ofono-client.c b/binding-bluetooth/ofono-client.c new file mode 100644 index 0000000..4b17dab --- /dev/null +++ b/binding-bluetooth/ofono-client.c @@ -0,0 +1,672 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lib_ofono.h" +#include "lib_ofono_modem.h" +#include "ofono-client.h" + +#ifdef OFONO_THREAD +static GMainLoop *OfonoLoop = NULL; +#endif + +static stOfonoManager OfonoManager = { 0 }; +static Ofono_RegisterCallback_t ofono_RegisterCallback = { 0 }; + + +/* ------ LOCAL FUNCTIONS --------- */ +static OFONOMODEMOrgOfonoModem* modem_create_proxy(struct ofono_modem *modem); + + +/* + * make a copy of each element + * And, to entirely free the new btd_device, you could do: modem_free + */ +struct ofono_modem *modem_copy(struct ofono_modem* modem) +{ + struct ofono_modem * temp; + + if (NULL == modem) { + return NULL; + } + + temp = g_malloc0(sizeof(struct ofono_modem)); + temp->path = g_strdup(modem->path); + + temp->proxy = g_object_ref (modem->proxy); + + temp->powered = modem->powered; + + return temp; +} + +/* + * Frees all of the memory + */ +static void modem_free(struct ofono_modem* modem) +{ + + if (NULL == modem) { + return ; + } + + if (modem->path) { + g_free(modem->path); + modem->path = NULL; + } + + if (modem->proxy){ + g_object_unref(modem->proxy); + modem->proxy = NULL; + } + + g_free(modem); + +} + +#if 0 +//debug print +void modem_print(struct ofono_modem *modem) +{ + gchar *s; + g_print("device %p\n",modem); + g_print("path\t\t:%s\n",modem->path); + g_print("powered\t\t:%d\n",modem->powered); + +} +#endif + +static int modem_path_cmp(struct ofono_modem * modem, const gchar* path ) +{ + return g_strcmp0 (modem->path, path); +} + +static void modem_list_lock(void) +{ + g_mutex_lock(&(OfonoManager.m)); +} + +static void modem_list_unlock(void) +{ + g_mutex_unlock(&(OfonoManager.m)); +} + +#if 0 +//debug print +void modem_list_print() +{ + GSList * temp = OfonoManager.modem; + while (temp) { + struct ofono_modem *modem = temp->data; + temp = temp->next; + g_print("----------------------------------------\n"); + modem_print(modem); + } + g_print("----------------------------------------\n"); +} +#endif + + +/* + * remove all the devices +*/ +static void modem_list_cleanup() +{ + LOGD("\n"); + GSList * temp = OfonoManager.modem; + while (temp) { + struct ofono_modem *modem = temp->data; + temp = temp->next; + + OfonoManager.modem = g_slist_remove_all(OfonoManager.modem, + modem); + + modem_free(modem); + } +} + +/* + * search ofono modem by path + * Returns the first found btd_device or NULL if it is not found + */ +static struct ofono_modem *modem_list_find_modem_by_path(const char* path) +{ + //LOGD("path%s\n",path); + GSList * temp = NULL; + + temp = g_slist_find_custom (OfonoManager.modem, path, + (GCompareFunc)modem_path_cmp); + + if (temp) { + return temp->data; + } + + return NULL; +} + +static void on_modem_property_changed (OFONOMODEMOrgOfonoModem* object, + gchar* property, + GVariant *value, + gpointer userdata) +{ +#ifdef _DEBUG_PRINT_DBUS + gchar *s; + + g_print ("%s\n",property); + s = g_variant_print (value, TRUE); + g_print (" %s\n", s); + g_free (s); +#endif + + struct ofono_modem *modem; + + + if (NULL==property || NULL==value || NULL==userdata){ + LOGD(" receive null data\n"); + return; + } + + modem = userdata; + + if (0 == g_strcmp0(property, "Powered")) + { + + GVariant *temp = g_variant_get_variant (value); + //g_print ("update\n"); + gboolean new_value; + //gboolean old_value; + g_variant_get(temp, "b", &new_value ); + g_variant_unref(temp); + LOGD("Powered %d\n",new_value); + //old_value = modem->powered; + modem->powered = new_value; + + if (NULL != ofono_RegisterCallback.modem_properties_changed) + { + ofono_RegisterCallback.modem_properties_changed(modem); + } + } + + +} + +static void on_modem_added (OFONOOrgOfonoManager* object, + gchar* path, + GVariant *value, + gpointer userdata) +{ +#ifdef _DEBUG_PRINT_DBUS + gchar *s; + + g_print ("on_modom_added\n"); + g_print ("%s\n",path); + s = g_variant_print (value, TRUE); + g_print (" %s\n", s); + g_free (s); +#endif + + + GError *error = NULL; + + if (NULL == path) + return; + + struct ofono_modem *modem = g_malloc0(sizeof(struct ofono_modem)); + + LOGD("new modem path:%s,%p\n", path, modem); + + modem->path = g_strdup(path); + modem->proxy = modem_create_proxy(modem); + + + + GVariant *property_value = NULL; + g_variant_lookup(value, "Powered", + "*", &property_value); + + if (property_value) + { + gboolean bValue = FALSE; + g_variant_get(property_value, "b", &bValue ); + modem->powered = bValue; + + g_variant_unref (property_value); + } + + modem_list_lock(); + OfonoManager.modem = g_slist_prepend(OfonoManager.modem, modem); + modem_list_unlock(); + + if (NULL != ofono_RegisterCallback.modem_added){ + ofono_RegisterCallback.modem_added(modem); + } +} + +static void on_modem_removed (OFONOOrgOfonoManager * object, + gchar* path, + gpointer userdata) +{ +#ifdef _DEBUG_PRINT_DBUS + gchar *s; + g_print ("on_modem_removed\n"); + g_print ("%s\n",path); +#endif + + struct ofono_modem *modem = NULL; + + modem_list_lock(); + + modem = modem_list_find_modem_by_path(path); + + LOGD("remove modem path:%s,%p\n", path, modem); + + if (modem){ + + OfonoManager.modem = g_slist_remove_all(OfonoManager.modem, + modem); + + if (NULL != ofono_RegisterCallback.modem_removed) + { + ofono_RegisterCallback.modem_removed(modem); + } + + modem_free(modem); + } + + modem_list_unlock(); + +} + + +static OFONOMODEMOrgOfonoModem* modem_create_proxy(struct ofono_modem *modem) +{ + GError *error = NULL; + + if (NULL == modem) + { + return NULL; + } + + if (NULL == modem->path) + { + return NULL; + } + + modem->proxy = ofono_modem_org_ofono_modem_proxy_new_for_bus_sync ( + G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, OFONO_SERVICE, + modem->path, NULL, &error); + + if (error) + { + LOGW ("Error : %s\n", error->message); + g_error_free(error); + return NULL; + } + + g_signal_connect (modem->proxy, + "property_changed", + G_CALLBACK (on_modem_property_changed), + modem); + + return modem->proxy; + +} + + +/* + * Force Update the modem list + * Call GetModems + * Returns: 0 - success or other errors + */ +int modem_list_update() { + LOGD("\n"); + + GError *error = NULL; + GVariant *result = NULL; + GSList *newDeviceList = NULL; + + + result = g_dbus_connection_call_sync(OfonoManager.system_conn, + OFONO_SERVICE, OFONO_MANAGER_PATH, OFONO_MANAGER_INTERFACE, + "GetModems", NULL, NULL, + G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); + + if (error) { + LOGW ("Error : %s\n", error->message); + g_error_free(error); + return -1; + } + + GVariant *ArrayValue = NULL; + GVariantIter *ArrayValueIter; + GVariant *Value = NULL; + + g_variant_get(result, "(*)", &ArrayValue); + + g_variant_get(ArrayValue, "a*", &ArrayValueIter); + while (g_variant_iter_loop(ArrayValueIter, "*", &Value)) { + + GVariantIter dbus_object_iter; + GVariant *dbusObjecPath; + GVariant *dbusObjecProperties; + + gchar *pObjecPath = NULL; + struct ofono_modem *modem = NULL; + + g_variant_iter_init(&dbus_object_iter, Value); + + //1st : DBus Object Path + dbusObjecPath = g_variant_iter_next_value(&dbus_object_iter); + + g_variant_get(dbusObjecPath, "o", &pObjecPath); + + LOGD("object path %s\n",pObjecPath); + + //ObjectPath is /hfp/org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx + if ((41 != strlen(pObjecPath)) + || (NULL == g_strstr_len(pObjecPath, 23, + "/hfp"ADAPTER_PATH"/dev"))) { + g_free(pObjecPath); + pObjecPath = NULL; + g_variant_unref(dbusObjecPath); + continue; + } + + modem = g_malloc0(sizeof(struct ofono_modem)); + modem->path = g_strdup(pObjecPath); + g_free(pObjecPath); + pObjecPath = NULL; + g_variant_unref(dbusObjecPath); + + LOGD("Found new device%s\n",modem->path ); + + modem->proxy = modem_create_proxy(modem); + + //2nd : DBus Interfaces under Object Path + dbusObjecProperties = g_variant_iter_next_value(&dbus_object_iter); + + GVariant *property_value = NULL; + g_variant_lookup(dbusObjecProperties, "Powered", + "*", &property_value); + + if (property_value) + { + gboolean bValue = FALSE; + g_variant_get(property_value, "b", &bValue ); + modem->powered = bValue; + + g_variant_unref (property_value); + } + + g_variant_unref(dbusObjecProperties); + + //Save device to newDeviceList + newDeviceList = g_slist_prepend(newDeviceList, modem); + + } + + g_variant_iter_free(ArrayValueIter); + g_variant_unref(ArrayValue); + + g_variant_unref(result); + + + //Force update device, so clean first + modem_list_lock(); + + modem_list_cleanup(); + + OfonoManager.modem = newDeviceList; + + modem_list_unlock(); + + return 0; +} + + +/* + * init cli dbus connection + * Returns: 0 - success or other errors + */ +static int ofono_manager_connect_to_dbus(void) +{ + GError *error = NULL; + + OfonoManager.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); + + if (error) + { + LOGE("errr:%s",error->message); + g_error_free(error); + + return -1; + } + + OfonoManager.proxy = ofono_org_ofono_manager_proxy_new_for_bus_sync( + G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, OFONO_SERVICE, + OFONO_MANAGER_PATH, NULL, &error); + + if (error) { + LOGW("Create Ofono manager client fail\n"); + LOGW("Error:%s\n", error->message); + g_error_free(error); + + g_object_unref(OfonoManager.system_conn); + return -1; + } + + return 0; +} + +/* + * register callback function + * Returns: 0 - success or other errors + */ +static int ofono_manager_register_callback(void) +{ + + g_signal_connect (OfonoManager.proxy, + "modem-added", + G_CALLBACK (on_modem_added), + NULL); + + g_signal_connect (OfonoManager.proxy, + "modem-removed", + G_CALLBACK (on_modem_removed), + NULL); + + return 0; +} + +/* + * init dbus and register callback + */ +static int ofono_mamager_init(void) +{ + int ret = 0; + LOGD("\n"); + ret = ofono_manager_connect_to_dbus(); + + if (0 != ret){ + LOGW("init fail\n"); + return -1; + } + + g_mutex_init(&(OfonoManager.m)); + + ofono_manager_register_callback(); + modem_list_update(); + + OfonoManager.inited = TRUE; + + return 0; +} + +#ifdef AGENT_THREAD +/* + * Ofono Manager Thread + * register callback function and create a new GMainLoop structure + */ +static void *ofono_event_loop_thread() +{ + int ret = 0; + + OfonoLoop = g_main_loop_new(NULL, FALSE);; + + ret = ofono_mamager_init(); + + if (0 == ret){ + LOGD("g_main_loop_run\n"); + g_main_loop_run(OfonoLoop); + + } + + g_main_loop_unref(OfonoLoop); + LOGD("exit...\n"); +} +#endif + +/* --- PUBLIC FUNCTIONS --- */ + +/* + * Get the ofono modem "Powered" property + */ +gboolean getOfonoModemPoweredByPath (gchar* path) +{ + struct ofono_modem *modem = NULL; + gboolean powered = FALSE; + + modem_list_lock(); + + modem = modem_list_find_modem_by_path(path); + + if (modem){ + powered = modem->powered; + } + + LOGD("get modem %p by path:%s,%d\n", modem, path, powered); + + modem_list_unlock(); + + return powered; +} + + +/* + * Init the ofono manager + */ +int OfonoManagerInit(void) +{ + int ret = 0; + + LOGD("\n"); + + if (TRUE == OfonoManager.inited) + { + LOGW("Ofono Manager is already inited\n"); + return -1; + + } + +#ifdef OFONO_THREAD + pthread_t thread_id; + + pthread_create(&thread_id, NULL, ofono_event_loop_thread, NULL); + pthread_setname_np(thread_id, "ofono_manager"); + +#else + + ret = ofono_mamager_init(); + +#endif + + return ret; +} + +/* + * Quit the ofono manager + */ +int OfonoManagerQuit(void) +{ + LOGD("\n"); + + if (TRUE != OfonoManager.inited) + { + LOGW("Ofono Manager is not inited\n"); + return -1; + + } +#ifdef OFONO_THREAD + g_main_loop_quit(OfonoLoop); +#endif + + memset(&ofono_RegisterCallback, 0, sizeof(Ofono_RegisterCallback_t)); + + g_object_unref(OfonoManager.proxy); + + modem_list_lock(); + modem_list_cleanup(); + modem_list_unlock(); + + g_mutex_clear (&(OfonoManager.m)); + + g_object_unref(OfonoManager.system_conn); + + OfonoManager.inited = FALSE; + + return 0; + +} + +/* + * Register ofono Callback function + */ +void OfonoModemAPIRegister(const Ofono_RegisterCallback_t* pstRegisterCallback) +{ + LOGD("\n"); + + if (NULL != pstRegisterCallback) + { + if (NULL != pstRegisterCallback->modem_added) + { + ofono_RegisterCallback.modem_added = + pstRegisterCallback->modem_added; + } + + if (NULL != pstRegisterCallback->modem_removed) + { + ofono_RegisterCallback.modem_removed = + pstRegisterCallback->modem_removed; + } + + if (NULL != pstRegisterCallback->modem_properties_changed) + { + ofono_RegisterCallback.modem_properties_changed = + pstRegisterCallback->modem_properties_changed; + } + + } + +} + diff --git a/binding-bluetooth/ofono-client.h b/binding-bluetooth/ofono-client.h new file mode 100644 index 0000000..38ab24f --- /dev/null +++ b/binding-bluetooth/ofono-client.h @@ -0,0 +1,74 @@ +/* Copyright 2016 ALPS ELECTRIC CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + + +#ifndef OFONO_CLIENT_H +#define OFONO_CLIENT_H + +#include +#include +#include + +#include "lib_ofono.h" +#include "lib_ofono_modem.h" + +#include "bluetooth-manager.h" + +//#define OFONO_THREAD + +struct ofono_modem { + gchar *path; + OFONOMODEMOrgOfonoModem *proxy; + + //gboolean online; + gboolean powered; + //gboolean lockdown; + //gboolean emergency; + //GVariant *interfaces; + //GVariant *features; + //gchar *name; + //gchar *type; + +}; + +typedef struct { + gboolean inited; + GMutex m; + GSList * modem; + OFONOOrgOfonoManager *proxy; + GDBusConnection *system_conn; +} stOfonoManager; + +typedef struct tagOfono_RegisterCallback +{ + void (*modem_added)(struct ofono_modem *modem); + void (*modem_removed)(struct ofono_modem *modem); + void (*modem_properties_changed)(struct ofono_modem *modem); +}Ofono_RegisterCallback_t; + +/* --- PUBLIC FUNCTIONS --- */ +void OfonoModemAPIRegister(const Ofono_RegisterCallback_t* pstRegisterCallback); + +int OfonoManagerInit(void) ; +int OfonoManagerQuit(void) ; + +gboolean getOfonoModemPoweredByPath (gchar* path); + + +#endif /* OFONO_CLIENT_H */ + + +/****************************** The End Of File ******************************/ + diff --git a/binding.pri b/binding.pri deleted file mode 100644 index 3448a56..0000000 --- a/binding.pri +++ /dev/null @@ -1,6 +0,0 @@ -TEMPLATE = lib -CONFIG += plugin use_c_linker -CONFIG -= qt -QMAKE_CFLAGS += -Wextra -Wconversion -Wno-unused-parameter -Werror=maybe-uninitialized -Werror=implicit-function-declaration -ffunction-sections -fdata-sections -Wl,--as-needed -Wl,--gc-sections - -DESTDIR = $${OUT_PWD}/../package/root/lib diff --git a/bluetooth-agent.c b/bluetooth-agent.c deleted file mode 100644 index 7193ce5..0000000 --- a/bluetooth-agent.c +++ /dev/null @@ -1,736 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include -#include -#include -#include - -#include "bluetooth-agent.h" - -#ifdef AGENT_THREAD - -#include - -static GMainLoop *agentLoop = NULL; -#endif - -static GDBusConnection *system_conn = NULL; -static gboolean agent_registered = FALSE; -static const char *agent_capability = NULL; -static Agent_RegisterCallback_t agent_RegisterCallback = { 0 }; -static AGENTOrgBluezAgent1 * agnet_interface = NULL; - -static struct Agent_Node *agent_event = NULL; - - -static void agent_event_auto_release(struct Agent_Node *event) -{ - if (NULL == event ){ - return; - } - g_dbus_method_invocation_return_dbus_error (event->invocation, - ERROR_BLUEZ_REJECT, ""); - g_free(event); -} - -/* - * Store the agent event - */ -static void agent_event_new(AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, int type) -{ - LOGD("\n"); - if(NULL !=agent_event ) - { - agent_event_auto_release(agent_event); - } - agent_event = g_malloc0(sizeof(struct Agent_Node)); - agent_event->type = type; - agent_event->object = object; - agent_event->invocation = invocation; - -} - - -/* - * agent api - * - * Methods : void Release() - * This method gets called when the service daemon - * unregisters the agent. An agent can use it to do - * cleanup tasks. There is no need to unregister the - * agent, because when this method gets called it has - * already been unregistered. - */ -static gboolean -on_handle_Release (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - gpointer user_data) -{ - LOGD("\n"); - - //gboolean ret = FALSE; - - if (NULL != agent_RegisterCallback.agent_Release) - { - agent_RegisterCallback.agent_Release(); - } - - agent_org_bluez_agent1_complete_release(object, invocation); - - g_dbus_interface_skeleton_unexport( - G_DBUS_INTERFACE_SKELETON(agnet_interface)); - - g_object_unref(agnet_interface); - agent_registered = FALSE; - -#ifdef AGENT_THREAD - if(agentLoop){ - g_main_loop_quit(agentLoop); - } -#endif - - return TRUE; -} - -/* - * agent api - * Methods : string RequestPinCode(object device) - * - * This method gets called when the service daemon - * needs to get the passkey for an authentication. - * - * The return value should be a string of 1-16 characters - * length. The string can be alphanumeric. - */ -static gboolean -on_handle_RequestPinCode (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - gpointer user_data) -{ - - LOGD("device:%s.\n",device); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - gchar *response; - - if (NULL != agent_RegisterCallback.agent_RequestPinCode) - { - ret = agent_RegisterCallback.agent_RequestPinCode (device, - &response, &error); - } - - if (TRUE == ret) - { - agent_org_bluez_agent1_complete_request_pin_code(object, - invocation, response); - g_free(response); - - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; -} - -/* - * agent api - * Methods : void DisplayPinCode(object device, string pincode) - * - * This method gets called when the service daemon - * needs to display a pincode for an authentication. - */ -static gboolean -on_handle_DisplayPinCode (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - const gchar *pincode, - gpointer user_data) -{ - - LOGD("device:%s,pincode:%s.\n",device, pincode); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - - if (NULL != agent_RegisterCallback.agent_DisplayPinCode) - { - ret = agent_RegisterCallback.agent_DisplayPinCode(device, - pincode, &error); - } - - if (TRUE == ret) - { - agent_org_bluez_agent1_complete_display_pin_code(object, invocation); - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; -} - - -/* - * agent api - * Methods : uint32 RequestPasskey(object device) - * - * This method gets called when the service daemon - * needs to get the passkey for an authentication. - * - * The return value should be a numeric value - * between 0-999999. - */ -static gboolean -on_handle_RequestPasskey (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - gpointer user_data) -{ - - LOGD("device:%s.\n",device); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - guint passkey; - - if (NULL != agent_RegisterCallback.agent_RequestPasskey) - { - ret = agent_RegisterCallback.agent_RequestPasskey(device, - &passkey, &error); - } - - if (TRUE == ret) - { - agent_org_bluez_agent1_complete_request_passkey(object, - invocation, passkey); - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; - -} - - -/* - * agent api - * Methods : void DisplayPasskey(object device, uint32 passkey, uint16 entered) - * - * This method gets called when the service daemon - * needs to display a passkey for an authentication. - * - * The entered parameter indicates the number of already - * typed keys on the remote side. - */ -static gboolean -on_handle_DisplayPasskey (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - guint passkey, - guint16 entered, - gpointer user_data) -{ - - LOGD("device:%s,passkey:%d,entered:%d.\n",device, passkey, entered); - - //gboolean ret = FALSE; - - if (NULL != agent_RegisterCallback.agent_DisplayPasskey) - { - agent_RegisterCallback.agent_DisplayPasskey(device, passkey, entered); - } - - agent_org_bluez_agent1_complete_display_passkey(object, invocation); - - - return TRUE; - -} - -/* - * agent api - * Methods : void RequestConfirmation(object device, uint32 passkey) - * - * This method gets called when the service daemon - * needs to confirm a passkey for an authentication. - * - * To confirm the value it should return an empty reply - * or an error in case the passkey is invalid. - */ -static gboolean -on_handle_RequestConfirmation (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - guint passkey, - gpointer user_data) -{ - LOGD("device:%s,passkey:%d.\n", device, passkey); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - - if (NULL != agent_RegisterCallback.agent_RequestConfirmation) - { - ret = agent_RegisterCallback.agent_RequestConfirmation(device, - passkey, &error); - } - LOGD("ret %d\n",ret); - if (TRUE == ret) - { - agent_event_new(object, invocation,REQUEST_CONFIRMATION); - //agent_org_bluez_agent1_complete_request_confirmation(object, - // invocation); - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; -} - -/* - * agent api - * Methods : void RequestAuthorization(object device) - * - * This method gets called to request the user to - * authorize an incoming pairing attempt which - * would in other circumstances trigger the just-works - * model. - */ -static gboolean -on_handle_RequestAuthorization (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - gpointer user_data) -{ - LOGD("device:%s.\n",device); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - - if (NULL != agent_RegisterCallback.agent_RequestAuthorization) - { - ret = agent_RegisterCallback.agent_RequestAuthorization(device,&error); - } - - if (TRUE == ret) - { - agent_org_bluez_agent1_complete_request_authorization(object, - invocation); - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; -} - -/* - * agent api - * Methods : void AuthorizeService(object device, string uuid) - * - * This method gets called when the service daemon - * needs to authorize a connection/service request. - */ -static gboolean -on_handle_AuthorizeService (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *device, - const gchar *uuid, - gpointer user_data) -{ - - LOGD("device:%s.uuid:%s\n",device,uuid); - - gboolean ret = FALSE; - const gchar *error = ERROR_BLUEZ_REJECT; - - if (NULL != agent_RegisterCallback.agent_AuthorizeService) - { - ret = agent_RegisterCallback.agent_AuthorizeService(device, - uuid, &error); - } - - if (TRUE == ret) - { - agent_org_bluez_agent1_complete_authorize_service(object, invocation); - } - else - { - g_dbus_method_invocation_return_dbus_error (invocation, error, ""); - } - - return TRUE; -} - -/* - * agent api - * Methods : void Cancel() - * - * This method gets called to indicate that the agent - * request failed before a reply was returned. - */ -static gboolean -on_handle_Cancel (AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - gpointer user_data) -{ - LOGD("\n"); - - if (NULL != agent_RegisterCallback.agent_Cancel) - { - agent_RegisterCallback.agent_Cancel(); - } - - agent_org_bluez_agent1_complete_cancel(object, invocation); - - return TRUE; - -} - -/* - * agent init - * init the dbus and register the agent to bluez - */ -static int create_and_register_agent(const char *capability) -{ - GError *error = NULL; - gboolean ret; - GVariant *value; - - LOGD("%s\n",capability); - - if (agent_registered == TRUE) { - LOGD("Agent is already registered\n"); - return -1; - } - - system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); - - if (error) - { - LOGE("errr:%s",error->message); - g_error_free(error); - - return -1; - } - - agent_capability = capability; - - agnet_interface = agent_org_bluez_agent1_skeleton_new (); - - g_signal_connect (agnet_interface, - "handle-release", - G_CALLBACK (on_handle_Release), - NULL); - - g_signal_connect (agnet_interface, - "handle-request-pin-code", - G_CALLBACK (on_handle_RequestPinCode), - NULL); - - g_signal_connect (agnet_interface, - "handle-display-pin-code", - G_CALLBACK (on_handle_DisplayPinCode), - NULL); - - g_signal_connect (agnet_interface, - "handle-request-passkey", - G_CALLBACK (on_handle_RequestPasskey), - NULL); - - g_signal_connect (agnet_interface, - "handle-display-passkey", - G_CALLBACK (on_handle_DisplayPasskey), - NULL); - - g_signal_connect (agnet_interface, - "handle-request-confirmation", - G_CALLBACK (on_handle_RequestConfirmation), - NULL); - - g_signal_connect (agnet_interface, - "handle-request-authorization", - G_CALLBACK (on_handle_RequestAuthorization), - NULL); - - g_signal_connect (agnet_interface, - "handle-authorize-service", - G_CALLBACK (on_handle_AuthorizeService), - NULL); - - g_signal_connect (agnet_interface, - "handle-cancel", - G_CALLBACK (on_handle_Cancel), - NULL); - - ret = g_dbus_interface_skeleton_export ( - G_DBUS_INTERFACE_SKELETON (agnet_interface), - system_conn, - AGENT_PATH, - &error); - - if (FALSE == ret) - { - LOGE("errr:%s",error->message); - g_error_free(error); - g_object_unref(system_conn); - - return -1; - } - - value = g_dbus_connection_call_sync(system_conn, BLUEZ_SERVICE, - AGENT_PATH, AGENT_MANAGER_INTERFACE, - "RegisterAgent", g_variant_new("(os)", AGENT_PATH, - agent_capability), - NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - if (NULL == value) { - LOGE ("RegisterAgent Err: %s", error->message); - g_error_free(error); - - g_dbus_interface_skeleton_unexport( - G_DBUS_INTERFACE_SKELETON(agnet_interface)); - - g_object_unref(system_conn); - return -1; - } - - g_variant_unref(value); - - agent_capability = NULL; - - agent_registered = TRUE; - - return 0; -} - -#ifdef AGENT_THREAD -/* - * agent thread function - */ -static void *agent_event_loop_thread(const char *capability) -{ - - agentLoop = g_main_loop_new(NULL, FALSE); - guint id; - GError *error = NULL; - gboolean ret; - - ret = create_and_register_agent(capability); - - if (0 == ret) - { - LOGD("g_main_loop_run\n"); - g_main_loop_run(agentLoop); - - - } - - g_main_loop_unref(agentLoop); - agentLoop = NULL; - LOGD("exit...\n"); -} -#endif - - -/* --- PUBLIC FUNCTIONS --- */ - - -/* - * start agent. - * Returns: 0 - success or other errors - */ -int agent_register(const char *capability) -{ - int ret = 0; - LOGD("\n"); - - if (agent_registered == TRUE) { - LOGD("Agent is already registered\n"); - return -1; - } - -#ifdef AGENT_THREAD - pthread_t thread_id; - pthread_create(&thread_id, NULL, agent_event_loop_thread, capability); - pthread_setname_np(thread_id, "agent"); - -#else - ret = create_and_register_agent(capability); -#endif - - return ret; -} - -/* - * stop agent. - * Returns: 0 - success or other errors - */ -int stop_agent() -{ - GError *error = NULL; - GVariant *value; - - LOGD("\n"); - - if (agent_registered == FALSE) { - LOGD("No agent is registered\n"); - return -1; - } - - value = g_dbus_connection_call_sync(system_conn, BLUEZ_SERVICE, - AGENT_PATH, AGENT_MANAGER_INTERFACE, - "UnregisterAgent", g_variant_new("(o)", AGENT_PATH ), - NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - if (NULL == value) { - LOGE ("Error UnregisterAgent: %s", error->message); - g_error_free(error); - - return -1; - } - - g_dbus_interface_skeleton_unexport( - G_DBUS_INTERFACE_SKELETON(agnet_interface)); - - g_object_unref(agnet_interface); - - g_object_unref(system_conn); - - agent_registered = FALSE; - - memset(&agent_RegisterCallback, 0, sizeof(Agent_RegisterCallback_t)); - -#ifdef AGENT_THREAD - if(agentLoop){ - g_main_loop_quit(agentLoop); - } -#endif - - return 0; -} - -/* - * Register Agent Callback function - */ -void agent_API_register(const Agent_RegisterCallback_t* pstRegisterCallback) -{ - LOGD("\n"); - - if (NULL != pstRegisterCallback) - { - if (NULL != pstRegisterCallback->agent_Release) - { - agent_RegisterCallback.agent_Release = - pstRegisterCallback->agent_Release; - } - - if (NULL != pstRegisterCallback->agent_RequestPinCode) - { - agent_RegisterCallback.agent_RequestPinCode = - pstRegisterCallback->agent_RequestPinCode; - } - - if (NULL != pstRegisterCallback->agent_DisplayPinCode) - { - agent_RegisterCallback.agent_DisplayPinCode = - pstRegisterCallback->agent_DisplayPinCode; - } - - if (NULL != pstRegisterCallback->agent_RequestPasskey) - { - agent_RegisterCallback.agent_RequestPasskey = - pstRegisterCallback->agent_RequestPasskey; - } - - if (NULL != pstRegisterCallback->agent_DisplayPasskey) - { - agent_RegisterCallback.agent_DisplayPasskey = - pstRegisterCallback->agent_DisplayPasskey; - } - - if (NULL != pstRegisterCallback->agent_RequestConfirmation) - { - agent_RegisterCallback.agent_RequestConfirmation = - pstRegisterCallback->agent_RequestConfirmation; - } - - if (NULL != pstRegisterCallback->agent_RequestAuthorization) - { - agent_RegisterCallback.agent_RequestAuthorization = - pstRegisterCallback->agent_RequestAuthorization; - } - - if (NULL != pstRegisterCallback->agent_AuthorizeService) - { - agent_RegisterCallback.agent_AuthorizeService = - pstRegisterCallback->agent_AuthorizeService; - } - - if (NULL != pstRegisterCallback->agent_Cancel) - { - agent_RegisterCallback.agent_Cancel = - pstRegisterCallback->agent_Cancel; - } - - } - -} - -/* - * Send the agent event "RequestConfirmation" reply - */ -int agent_send_confirmation(gboolean confirmation) -{ - if (NULL == agent_event) - { - LOGW("Not agent event"); - return -1; - } - LOGD("%d-%d\n", confirmation, agent_event->type); - - if (REQUEST_CONFIRMATION != agent_event->type) - { - return -1; - } - - if (TRUE == confirmation){ - agent_org_bluez_agent1_complete_request_confirmation(agent_event->object, - agent_event->invocation); - }else{ - g_dbus_method_invocation_return_dbus_error (agent_event->invocation, - ERROR_BLUEZ_REJECT, ""); - } - - g_free(agent_event); - agent_event = NULL; - return 0; -} -/****************************** The End Of File ******************************/ - diff --git a/bluetooth-agent.h b/bluetooth-agent.h deleted file mode 100644 index 2b4b78a..0000000 --- a/bluetooth-agent.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#ifndef BLUETOOTH_AGENT_H -#define BLUETOOTH_AGENT_H - -#include -#include -#include - -#include "lib_agent.h" -#include "bluetooth-manager.h" - -//#define AGENT_THREAD -#define REQUEST_PINCCODE 1 -#define REQUEST_PASSKEY 2 -#define REQUEST_CONFIRMATION 3 -#define REQUEST_AUTHORIZATION 4 - -struct Agent_Node -{ - int type; - AGENTOrgBluezAgent1 *object; - GDBusMethodInvocation *invocation; -}; - -typedef struct tagAgent_RegisterCallback -{ - void (*agent_Release)(void); - gboolean (*agent_RequestPinCode) (const gchar *device, gchar **pincode, const gchar **error); - gboolean (*agent_DisplayPinCode)(const gchar *device, const gchar *pincode, const gchar **error); - gboolean (*agent_RequestPasskey)(const gchar *device, guint *passkey, const gchar **error); - void (*agent_DisplayPasskey)(const gchar *device, guint passkey, guint16 entered); - gboolean (*agent_RequestConfirmation)(const gchar *device, guint passkey, const gchar **error); - gboolean (*agent_RequestAuthorization)(const gchar *device, const gchar **error); - gboolean (*agent_AuthorizeService)(const gchar *device, const gchar *uuid, const gchar **error); - void (*agent_Cancel)(void); -}Agent_RegisterCallback_t; - - - -/* --- PUBLIC FUNCTIONS --- */ -void agent_API_register(const Agent_RegisterCallback_t* pstRegisterCallback); - -int agent_register(const char *capability); -int stop_agent(); - -int agent_send_confirmation(gboolean confirmation); - -#endif /* BLUETOOTH_AGENT_H */ - - -/****************************** The End Of File ******************************/ - diff --git a/bluetooth-api.c b/bluetooth-api.c deleted file mode 100644 index 79cebee..0000000 --- a/bluetooth-api.c +++ /dev/null @@ -1,965 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#define _GNU_SOURCE - -#include -#include -#include -#include -#include -#include -#include - -#include "bluetooth-manager.h" -#include "bluetooth-agent.h" -#include "bluetooth-api.h" - -/* - * the interface to afb-daemon - */ -const struct afb_binding_interface *afbitf; - -struct event -{ - struct event *next; - struct afb_event event; - char tag[1]; -}; - -static struct event *events = 0; - -/* searchs the event of tag */ -static struct event *event_get(const char *tag) -{ - struct event *e = events; - while(e && strcmp(e->tag, tag)) - e = e->next; - return e; -} - -/* deletes the event of tag */ -static int event_del(const char *tag) -{ - struct event *e, **p; - - /* check exists */ - e = event_get(tag); - if (!e) return -1; - - /* unlink */ - p = &events; - while(*p != e) p = &(*p)->next; - *p = e->next; - - /* destroys */ - afb_event_drop(e->event); - free(e); - return 0; -} - -/* creates the event of tag */ -static int event_add(const char *tag, const char *name) -{ - struct event *e; - - /* check valid tag */ - e = event_get(tag); - if (e) return -1; - - /* creation */ - e = malloc(strlen(tag) + sizeof *e); - if (!e) return -1; - strcpy(e->tag, tag); - - /* make the event */ - e->event = afb_daemon_make_event(afbitf->daemon, name); - if (!e->event.closure) { free(e); return -1; } - - /* link */ - e->next = events; - events = e; - return 0; -} - -static int event_subscribe(struct afb_req request, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_req_subscribe(request, e->event) : -1; -} - -static int event_unsubscribe(struct afb_req request, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_req_unsubscribe(request, e->event) : -1; -} - -static int event_push(struct json_object *args, const char *tag) -{ - struct event *e; - e = event_get(tag); - return e ? afb_event_push(e->event, json_object_get(args)) : -1; -} - -static json_object *new_json_object_parse_avrcp(struct btd_device *BDdevice, unsigned int filter) -{ - json_object *jresp = json_object_new_object(); - json_object *jstring = NULL; - - if (BD_AVRCP_TITLE & filter) - { - if (BDdevice->avrcp_title) - { - jstring = json_object_new_string(BDdevice->avrcp_title); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Title", jstring); - } - - if (BD_AVRCP_ARTIST & filter) - { - if (BDdevice->avrcp_artist) - { - jstring = json_object_new_string(BDdevice->avrcp_artist); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Artist", jstring); - } - - if (BD_AVRCP_STATUS & filter) - { - if (BDdevice->avrcp_status) - { - jstring = json_object_new_string(BDdevice->avrcp_status); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Status", jstring); - } - - if (BD_AVRCP_DURATION & filter) - { - json_object_object_add(jresp, "Duration", - json_object_new_int(BDdevice->avrcp_duration)); - } - - if (BD_AVRCP_POSITION & filter) - { - json_object_object_add(jresp, "Position", - json_object_new_int(BDdevice->avrcp_position)); - } - - return jresp; -} - -/* create device json object*/ -static json_object *new_json_object_from_device(struct btd_device *BDdevice, unsigned int filter) -{ - json_object *jresp = json_object_new_object(); - json_object *jstring = NULL; - - if (BD_PATH & filter) - { - if (BDdevice->path) - { - jstring = json_object_new_string(BDdevice->path); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Path", jstring); - } - - if (BD_ADDER & filter) - { - if (BDdevice->bdaddr) - { - jstring = json_object_new_string(BDdevice->bdaddr); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Address", jstring); - } - - if (BD_NAME & filter) - { - if (BDdevice->name) - { - jstring = json_object_new_string(BDdevice->name); - } - else - { - jstring = json_object_new_string(""); - } - json_object_object_add(jresp, "Name", jstring); - } - - if (BD_PAIRED & filter) - { - jstring = (TRUE == BDdevice->paired) ? - json_object_new_string("True"):json_object_new_string("False"); - json_object_object_add(jresp, "Paired", jstring); - } - - if (BD_TRUSTED & filter) - { - jstring = (TRUE == BDdevice->trusted) ? - json_object_new_string("True"):json_object_new_string("False"); - json_object_object_add(jresp, "Trusted", jstring); - } - - if (BD_ACLCONNECTED & filter) - { - jstring = (TRUE == BDdevice->connected) ? - json_object_new_string("True"):json_object_new_string("False"); - json_object_object_add(jresp, "Connected", jstring); - } - - if (BD_AVCONNECTED & filter) - { - jstring = (TRUE == BDdevice->avconnected) ? - json_object_new_string("True"):json_object_new_string("False"); - json_object_object_add(jresp, "AVPConnected", jstring); - - if (BDdevice->avconnected) - { - jstring = new_json_object_parse_avrcp(BDdevice, filter); - json_object_object_add(jresp, "Metadata", jstring); - } - } - - if (BD_TRANSPORT_STATE & filter) - { - jstring = BDdevice->transport_state ? - json_object_new_string(BDdevice->transport_state) : - json_object_new_string("none"); - json_object_object_add(jresp, "TransportState", jstring); - } - - if (BD_TRANSPORT_VOLUME & filter) - { - json_object_object_add(jresp, "TransportVolume", - json_object_new_int(BDdevice->transport_volume)); - } - - if (BD_HFPCONNECTED & filter) - { - jstring = (TRUE == BDdevice->hfpconnected) ? - json_object_new_string("True"):json_object_new_string("False"); - json_object_object_add(jresp, "HFPConnected", jstring); - } - - if (BD_UUID_PROFILES & filter) - { - GList *list = BDdevice->uuids; - - if (list) - { - json_object *jarray = json_object_new_array(); - - for (;list;list=list->next) - { - jstring = json_object_new_string(list->data); - json_object_array_add(jarray, jstring); - } - json_object_object_add(jresp, "UUIDs", jarray); - } - } - - return jresp; -} - -/**/ -static void bt_power (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - json_object *jresp = NULL; - int ret = 0; - - jresp = json_object_new_object(); - - /* no "?value=" parameter : return current state */ - if (!value) { - gboolean power_value; - ret = adapter_get_powered(&power_value); - - if (0==ret) - { - - setHMIStatus(ACTIVE); - (TRUE==power_value)?json_object_object_add (jresp, "power", json_object_new_string ("on")) - : json_object_object_add (jresp, "power", json_object_new_string ("off")); - } - else - { - afb_req_fail (request, "failed", "Unable to get power status"); - return; - } - - } - - /* "?value=" parameter is "1" or "true" */ - else if ( atoi(value) == 1 || !strcasecmp(value, "true") ) - { - if (adapter_set_powered (TRUE)) - { - afb_req_fail (request,"failed","no more radio devices available"); - return; - } - json_object_object_add (jresp, "power", json_object_new_string ("on")); - setHMIStatus(ACTIVE); - } - - /* "?value=" parameter is "0" or "false" */ - else if ( atoi(value) == 0 || !strcasecmp(value, "false") ) - { - if (adapter_set_powered (FALSE)) - { - afb_req_fail (request, "failed", "Unable to release radio device"); - return; - } - - json_object_object_add (jresp, "power", json_object_new_string("off")); - setHMIStatus(INACTIVE); - } - else - { - afb_req_fail (request, "failed", "Invalid value"); - return; - } - - afb_req_success (request, jresp, "Radio - Power set"); -} - -/**/ -static void bt_start_discovery (struct afb_req request) -{ - LOGD("\n"); - int ret = 0; - - ret = adapter_start_discovery(); - - if (ret) - { - afb_req_fail (request, "failed", "Unable to start discovery"); - return; - } - - afb_req_success (request, NULL, NULL); -} - -/**/ -static void bt_stop_discovery (struct afb_req request) -{ - LOGD("\n"); - int ret = 0; - - ret = adapter_stop_discovery(); - - if (ret) - { - afb_req_fail (request, "failed", "Unable to stop discovery"); - return; - } - - afb_req_success (request, NULL, NULL); -} - - -/**/ -static void bt_discovery_result (struct afb_req request) -{ - LOGD("\n"); - GSList *list = NULL; - GSList *tmp = NULL; - //adapter_update_devices(); - list = adapter_get_devices_list(); - if (NULL == list) - { - afb_req_fail (request, "failed", "No find devices"); - return; - } - - json_object *my_array = json_object_new_array(); - - tmp = list; - for(;tmp;tmp=tmp->next) - { - struct btd_device *BDdevice = tmp->data; - //LOGD("\n%s\t%s\n",BDdevice->bdaddr,BDdevice->name); - - unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_UUID_PROFILES; - - json_object *jresp = new_json_object_from_device(BDdevice, filter); - - json_object_array_add(my_array, jresp); - } - - adapter_devices_list_free(list); - - afb_req_success(request, my_array, "BT - Scan Result is Displayed"); -} - -/**/ -static void bt_pair (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - int ret = 0; - - if (NULL == value) - { - afb_req_fail (request, "failed", "Please Input the Device Address"); - return; - } - - ret = device_pair(value); - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Device pairing failed"); - } - -} - -/**/ -static void bt_cancel_pairing (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - int ret = 0; - - if (NULL == value) - { - afb_req_fail (request, "failed", "Please Input the Device Address"); - return; - } - - ret = device_cancelPairing(value); - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Device cancel pairing failed"); - } - -} - -/**/ -static void bt_connect (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - const char *uuid = afb_req_value (request, "uuid"); - int ret = 0; - - if (NULL == value) - { - afb_req_fail (request, "failed", "Please Input the Device Address"); - return; - } - - ret = device_connect(value, uuid); - - if (0 == ret) - { - json_object *jresp = json_object_new_object(); - json_object *jstring; - - jstring = json_object_new_string("connected"); - json_object_object_add(jresp, "Status", jstring); - - jstring = json_object_new_string(value); - json_object_object_add(jresp, "Address", jstring); - - if (uuid) { - jstring = json_object_new_string(uuid); - json_object_object_add(jresp, "UUID", jstring); - } - - event_push(jresp, "connection"); - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Device connect failed"); - } - -} - -/**/ -static void bt_disconnect (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - const char *uuid = afb_req_value (request, "uuid"); - int ret = 0; - - if (NULL == value) - { - afb_req_fail (request, "failed", "Please Input the Device Address"); - return; - } - - ret = device_disconnect(value, NULL); - if (0 == ret) - { - json_object *jresp = json_object_new_object(); - json_object *jstring; - - jstring = json_object_new_string("disconnected"); - json_object_object_add(jresp, "Status", jstring); - - jstring = json_object_new_string(value); - json_object_object_add(jresp, "Address", jstring); - - if (uuid) { - jstring = json_object_new_string(uuid); - json_object_object_add(jresp, "UUID", jstring); - } - - event_push(jresp, "connection"); - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Device disconnect failed"); - } - -} - -/**/ -static void bt_remove_device (struct afb_req request) -{ - LOGD("\n"); - - const char *value = afb_req_value (request, "value"); - int ret = 0; - - if (NULL == value) - { - afb_req_fail (request, "failed", "Please Input the Device Address"); - return; - } - - ret = adapter_remove_device(value); - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Remove Device failed"); - } - -} - - -/**/ -static void bt_set_device_property (struct afb_req request) -{ - LOGD("\n"); - - const char *address = afb_req_value (request, "Address"); - const char *property = afb_req_value (request, "Property"); - const char *value = afb_req_value (request, "value"); - int ret = 0; - GSList *list = NULL; - - if (NULL == address || NULL==property || NULL==value) - { - afb_req_fail (request, "failed", "Please Check Input Parameter"); - return; - } - - ret = device_set_property(address, property, value); - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Device set property failed"); - } - -} - -/**/ -static void bt_set_property (struct afb_req request) -{ - LOGD("\n"); - - const char *property = afb_req_value (request, "Property"); - const char *value = afb_req_value (request, "value"); - int ret = 0; - gboolean setvalue; - - - if (NULL==property || NULL==value) - { - afb_req_fail (request, "failed", "Please Check Input Parameter"); - return; - } - - - if ( atoi(value) == 1 || !strcasecmp(value, "true") ) - { - ret = adapter_set_property (property, TRUE); - - } - - /* "?value=" parameter is "0" or "false" */ - else if ( atoi(value) == 0 || !strcasecmp(value, "false") ) - { - ret = adapter_set_property (property, FALSE); - } - else - { - afb_req_fail (request, "failed", "Invalid value"); - return; - } - - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Bluetooth set property failed"); - } - -} - -/**/ -static void bt_set_avrcp_controls (struct afb_req request) -{ - LOGD("\n"); - - const char *address = afb_req_value (request, "Address"); - const char *value = afb_req_value (request, "value"); - int ret = 0; - GSList *list = NULL; - - if (NULL==value) - { - afb_req_fail (request, "failed", "Please Check Input Parameter"); - return; - } - - if (NULL == address) - { - list = adapter_get_devices_list(); - if (NULL == list) - { - afb_req_fail (request, "failed", "No find devices"); - return; - } - - for (;list;list=list->next) - { - struct btd_device *BDdevice = list->data; - //LOGD("\n%s\t%s\n",BDdevice->bdaddr,BDdevice->name); - if (BDdevice->avconnected) - { - address = BDdevice->bdaddr; - break; - } - } - } - - ret = device_call_avrcp_method(address, value); - if (0 == ret) - { - afb_req_success (request, NULL, NULL); - } - else - { - afb_req_fail (request, "failed", "Bluetooth set avrcp control failed"); - } -} - -static void eventadd (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - const char *name = afb_req_value(request, "name"); - - if (tag == NULL || name == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_add(tag, name)) - afb_req_fail(request, "failed", "creation error"); - else - afb_req_success(request, NULL, NULL); -} - -static void eventdel (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_del(tag)) - afb_req_fail(request, "failed", "deletion error"); - else - afb_req_success(request, NULL, NULL); -} - -static void eventsub (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_subscribe(request, tag)) - afb_req_fail(request, "failed", "subscription error"); - else - afb_req_success(request, NULL, NULL); -} - -static void eventunsub (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 != event_unsubscribe(request, tag)) - afb_req_fail(request, "failed", "unsubscription error"); - else - afb_req_success(request, NULL, NULL); -} - -static void eventpush (struct afb_req request) -{ - const char *tag = afb_req_value(request, "tag"); - const char *data = afb_req_value(request, "data"); - json_object *object = data ? json_tokener_parse(data) : NULL; - - if (tag == NULL) - afb_req_fail(request, "failed", "bad arguments"); - else if (0 > event_push(object, tag)) - afb_req_fail(request, "failed", "push error"); - else - afb_req_success(request, NULL, NULL); -} - -/* - * broadcast new device - */ -void bt_broadcast_device_added(struct btd_device *BDdevice) -{ - unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_UUID_PROFILES; - int ret; - json_object *jresp = new_json_object_from_device(BDdevice, filter); - - LOGD("\n"); - ret = event_push(jresp,"device_added"); - //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_added", jresp); - LOGD("%d\n",ret); -} - -/* - * broadcast device removed - */ -void bt_broadcast_device_removed(struct btd_device *BDdevice) -{ - unsigned int filter = BD_ADDER; - int ret; - json_object *jresp = new_json_object_from_device(BDdevice, filter); - - LOGD("\n"); - ret = event_push(jresp,"device_removed"); - //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_removed", jresp); - LOGD("%d\n",ret); -} - - -/* - * broadcast device updated - */ -void bt_broadcast_device_properties_change(struct btd_device *BDdevice) -{ - - unsigned int filter = BD_ADDER|BD_NAME|BD_PAIRED|BD_ACLCONNECTED|BD_AVCONNECTED|BD_HFPCONNECTED|BD_AVRCP_TITLE|BD_AVRCP_ARTIST|BD_AVRCP_STATUS|BD_AVRCP_DURATION|BD_AVRCP_POSITION|BD_TRANSPORT_STATE|BD_TRANSPORT_VOLUME|BD_UUID_PROFILES; - - int ret; - json_object *jresp = new_json_object_from_device(BDdevice, filter); - - LOGD("\n"); - ret = event_push(jresp,"device_updated"); - //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_updated", jresp); - LOGD("%d\n",ret); -} - -/* - * broadcast request confirmation - */ -gboolean bt_request_confirmation(const gchar *device, guint passkey) -{ - json_object *jresp = json_object_new_object(); - json_object *jstring = NULL; - int ret; - - jstring = json_object_new_string(device); - json_object_object_add(jresp, "Address", jstring); - jstring = json_object_new_int(passkey); - json_object_object_add(jresp, "Passkey", jstring); - - ret = event_push(jresp,"request_confirmation"); - //ret = afb_daemon_broadcast_event(afbitf->daemon, "device_updated", jresp); - - LOGD("%d\n",ret); - - if (ret >0) { - return TRUE; - }else { - return FALSE; - } - -} - -static void bt_send_confirmation(struct afb_req request) -{ - const char *value = afb_req_value(request, "value"); - int ret; - gboolean confirmation; - - if (!value) { - afb_req_fail (request, "failed", "Unable to get value status"); - return; - } - - /* "?value=" parameter is "1" or "yes" */ - else if ( atoi(value) == 1 || !strcasecmp(value, "yes") ) - { - ret = agent_send_confirmation (TRUE); - } - - /* "?value=" parameter is "0" or "no" */ - else if ( atoi(value) == 0 || !strcasecmp(value, "no") ) - { - ret = agent_send_confirmation (TRUE); - } - else - { - afb_req_fail (request, "failed", "Invalid value"); - return; - } - - if ( 0==ret) { - afb_req_success(request, NULL, NULL); - }else { - afb_req_success(request, "failed", "fail"); - } - -} - -/* - * array of the verbs exported to afb-daemon - */ -static const struct afb_verb_desc_v1 binding_verbs[]= { -/* VERB'S NAME SESSION MANAGEMENT FUNCTION TO CALL SHORT DESCRIPTION */ -{ .name = "power", .session = AFB_SESSION_NONE, .callback = bt_power, .info = "Set Bluetooth Power ON or OFF" }, -{ .name = "start_discovery", .session = AFB_SESSION_NONE, .callback = bt_start_discovery, .info = "Start discovery" }, -{ .name = "stop_discovery", .session = AFB_SESSION_NONE, .callback = bt_stop_discovery, .info = "Stop discovery" }, -{ .name = "discovery_result", .session = AFB_SESSION_NONE, .callback = bt_discovery_result, .info = "Get discovery result" }, -{ .name = "remove_device", .session = AFB_SESSION_NONE, .callback = bt_remove_device, .info = "Remove the special device" }, -{ .name = "pair", .session = AFB_SESSION_NONE, .callback = bt_pair, .info = "Pair to special device" }, -{ .name = "cancel_pair", .session = AFB_SESSION_NONE, .callback = bt_cancel_pairing, .info = "Cancel the pairing process" }, -{ .name = "connect", .session = AFB_SESSION_NONE, .callback = bt_connect, .info = "Connect to special device" }, -{ .name = "disconnect", .session = AFB_SESSION_NONE, .callback = bt_disconnect, .info = "Disconnect special device" }, -{ .name = "set_device_property", .session = AFB_SESSION_NONE, .callback = bt_set_device_property, .info = "Set special device property" }, -{ .name = "set_property", .session = AFB_SESSION_NONE, .callback = bt_set_property, .info = "Set Bluetooth property" }, -{ .name = "set_avrcp_controls", .session = AFB_SESSION_NONE, .callback = bt_set_avrcp_controls, .info = "Set Bluetooth AVRCP controls" }, -{ .name = "send_confirmation", .session = AFB_SESSION_NONE, .callback = bt_send_confirmation, .info = "Send Confirmation" }, -{ .name = "eventadd", .session = AFB_SESSION_NONE, .callback = eventadd, .info = "adds the event of 'name' for the 'tag'"}, -{ .name = "eventdel", .session = AFB_SESSION_NONE, .callback = eventdel, .info = "deletes the event of 'tag'"}, -{ .name = "eventsub", .session = AFB_SESSION_NONE, .callback = eventsub, .info = "subscribes to the event of 'tag'"}, -{ .name = "eventunsub", .session = AFB_SESSION_NONE, .callback = eventunsub, .info = "unsubscribes to the event of 'tag'"}, -{ .name = "eventpush", .session = AFB_SESSION_NONE, .callback = eventpush, .info = "pushs the event of 'tag' with the 'data'"}, - -{ .name = NULL } /* marker for end of the array */ -}; - -/* - * description of the binding for afb-daemon - */ -static const struct afb_binding binding_description = -{ - .type = AFB_BINDING_VERSION_1, - .v1 = { - .info = "Application Framework Binder - Bluetooth Manager plugin", - .prefix = "Bluetooth-Manager", - .verbs = binding_verbs - } -}; - -/* - * activation function for registering the binding called by afb-daemon - */ -const struct afb_binding *afbBindingV1Register (const struct afb_binding_interface *itf) -{ - afbitf = itf; // records the interface for accessing afb-daemon - -#if 1 -//temp solution to fix configure Bluetooth USB Dongle - system("rfkill unblock bluetooth"); - system("hciconfig hci0 up"); -#endif - - Binding_RegisterCallback_t API_Callback; - API_Callback.binding_device_added = bt_broadcast_device_added; - API_Callback.binding_device_removed = bt_broadcast_device_removed; - API_Callback.binding_device_properties_changed = bt_broadcast_device_properties_change; - API_Callback.binding_request_confirmation = bt_request_confirmation; - BindingAPIRegister(&API_Callback); - - BluetoothManagerInit(); - - return &binding_description; -} - -#if 0 -int afbBindingV1ServiceInit(struct afb_service service) -{ - return BluetoothManageInit(); -} -#endif - - -/***************************** The End Of File ******************************/ - diff --git a/bluetooth-api.h b/bluetooth-api.h deleted file mode 100644 index b1dbd45..0000000 --- a/bluetooth-api.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#ifndef BLUETOOTH_API_H -#define BLUETOOTH_API_H - - -#define LEFT_SHIFT(shift) (0x00000001ul << (shift) ) - -#define BD_NONE 0x00000000 -#define BD_PATH LEFT_SHIFT(0) -#define BD_ADDER LEFT_SHIFT(1) -#define BD_NAME LEFT_SHIFT(2) -#define BD_ALIAS LEFT_SHIFT(3) -#define BD_PAIRED LEFT_SHIFT(4) -#define BD_TRUSTED LEFT_SHIFT(5) -#define BD_BLOCKED LEFT_SHIFT(6) -#define BD_ACLCONNECTED LEFT_SHIFT(7) -#define BD_AVCONNECTED LEFT_SHIFT(8) -#define BD_HFPCONNECTED LEFT_SHIFT(9) -#define BD_LEGACYPAIRING LEFT_SHIFT(10) -#define BD_RSSI LEFT_SHIFT(11) -#define BD_AVRCP_TITLE LEFT_SHIFT(12) -#define BD_AVRCP_ARTIST LEFT_SHIFT(13) -#define BD_AVRCP_STATUS LEFT_SHIFT(14) -#define BD_AVRCP_DURATION LEFT_SHIFT(15) -#define BD_AVRCP_POSITION LEFT_SHIFT(16) -#define BD_TRANSPORT_STATE LEFT_SHIFT(17) -#define BD_TRANSPORT_VOLUME LEFT_SHIFT(18) -#define BD_UUID_PROFILES LEFT_SHIFT(19) - - -/* -------------- PLUGIN DEFINITIONS ----------------- */ - -typedef struct { - void *bt_server; /* handle to implementation */ - unsigned int index; /* currently selected media file */ -} BtCtxHandleT; - - -#endif /* BLUETOOTH_API_H */ - - - -/****************************** The End Of File ******************************/ - - diff --git a/bluetooth-manager.c b/bluetooth-manager.c deleted file mode 100644 index 5ce90ce..0000000 --- a/bluetooth-manager.c +++ /dev/null @@ -1,1811 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "bluetooth-manager.h" -#include "bluez-client.h" -#include "ofono-client.h" -#include "bluetooth-agent.h" - -static Client cli = { 0 }; -static Binding_RegisterCallback_t g_RegisterCallback = { 0 }; -static stBluetoothManage BluetoothManage = { 0 }; -static FILE *logfp= NULL; - -/* ------ LOCAL FUNCTIONS --------- */ -void BluetoothManage_InitFlag_Set(gboolean value) -{ - BluetoothManage.inited = value; -} - -gboolean BluetoothManage_InitFlag_Get(void) -{ - return BluetoothManage.inited; -} - -void devices_list_lock(void) -{ - g_mutex_lock(&(BluetoothManage.m)); -} - -void devices_list_unlock(void) -{ - g_mutex_unlock(&(BluetoothManage.m)); -} - -static int device_path_cmp(struct btd_device * device, const gchar* pPath ) -{ - return !g_str_has_prefix (pPath, device->path); -} - -/* - * search device by path - * Returns the first found btd_device or NULL if it is not found - */ -struct btd_device *devices_list_find_device_by_path(const gchar* pPath) -{ - GSList * temp; - - temp = g_slist_find_custom (BluetoothManage.device, pPath, - (GCompareFunc)device_path_cmp); - - if (temp) { - return temp->data; - } - - return NULL; - -} - - -static int device_bdaddr_cmp(struct btd_device * device, const gchar* pBDaddr ) -{ - return g_strcmp0 (device->bdaddr, pBDaddr); -} - -/* - * search device by path - * Returns the first found btd_device or NULL if it is not found - */ -struct btd_device *devices_list_find_device_by_bdaddr(const gchar* pBDaddr) -{ - GSList * temp; - - temp = g_slist_find_custom (BluetoothManage.device, pBDaddr, - (GCompareFunc)device_bdaddr_cmp); - - if (temp) { - return temp->data; - } - - return NULL; - -} - - -/* - * make a copy of each element - * And, to entirely free the new btd_device, you could do: device_free - */ -struct btd_device *device_copy(struct btd_device* device) -{ - struct btd_device * temp; - - if (NULL == device) { - return NULL; - } - - temp = g_malloc0(sizeof(struct btd_device)); - temp->path = g_strdup(device->path); - temp->bdaddr = g_strdup(device->bdaddr); - temp->name = g_strdup(device->name); - temp->paired = device->paired; - temp->trusted = device->trusted; - temp->connected = device->connected; - temp->avconnected = device->avconnected; - temp->hfpconnected = device->hfpconnected; - temp->uuids = g_list_copy_deep(device->uuids, g_strdup, NULL); - - return temp; -} - -/* - * Frees all of the memory - */ -void device_free(struct btd_device* device) -{ - - if (NULL == device) { - return ; - } - D_PRINTF("device %p\n",device); - if (device->path) { - D_PRINTF("path:%s\n",device->path); - g_free(device->path); - device->path = NULL; - } - if (device->bdaddr) { - D_PRINTF("bdaddr:%s\n",device->bdaddr); - g_free(device->bdaddr); - device->bdaddr = NULL; - } - if (device->name) { - D_PRINTF("name:%s\n",device->name); - g_free(device->name); - device->name = NULL; - } - - if (device->avrcp_title) { - D_PRINTF("avrcp_title:%s\n",device->avrcp_title); - g_free(device->avrcp_title); - device->avrcp_title = NULL; - } - - if (device->avrcp_artist) { - D_PRINTF("avrcp_artist:%s\n",device->avrcp_artist); - g_free(device->avrcp_artist); - device->avrcp_artist = NULL; - } - - if (device->avrcp_status) { - D_PRINTF("avrcp_status:%s\n",device->avrcp_status); - g_free(device->avrcp_status); - device->avrcp_status = NULL; - } - - if (device->transport_state) { - D_PRINTF("transport_state:%s\n",device->transport_state); - g_free(device->transport_state); - device->transport_state = NULL; - } - - if (device->uuids) { - D_PRINTF("uuids: xxx\n"); - g_list_free_full(device->uuids, g_free); - device->uuids = NULL; - } - - g_free(device); -} - -void device_print(struct btd_device *BDdevice) -{ - g_print("device %p\n",BDdevice); - g_print("bdaddr\t\t:%s\n",BDdevice->bdaddr); - g_print("name\t\t:%s\n",BDdevice->name); - g_print("trusted\t\t:%d\n",BDdevice->trusted); - g_print("paired\t\t:%d\n",BDdevice->paired); - - g_print("connected\t:%d\n",BDdevice->connected); - g_print("AVPconnected\t:%d\n",BDdevice->avconnected); - g_print("HFPconnected\t:%d\n",BDdevice->hfpconnected); -} - -/* - * remove all the devices - */ -void devices_list_cleanup() -{ - LOGD("\n"); - GSList * temp = BluetoothManage.device; - while (temp) { - struct btd_device *BDdevice = temp->data; - temp = temp->next; - - BluetoothManage.device = g_slist_remove_all(BluetoothManage.device, - BDdevice); - - device_free(BDdevice); - } -} - -/* - * Print all the devices - */ -void devices_list_print() -{ - LOGD("\n"); - GSList * temp = BluetoothManage.device; - while (temp) { - struct btd_device *BDdevice = temp->data; - temp = temp->next; - g_print("----------------------------------------\n"); - device_print(BDdevice); - } - g_print("----------------------------------------\n"); -} - -/* - * update device from Interfcace org.bluez.MediaControl1 properties - */ -static int device_update_from_MediaControl1(struct btd_device *device, - GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - //gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - //guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"Connected")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Connected %d\n",value_b); - device->avconnected = value_b; - }else if (0==g_strcmp0(key,"Player")) { - g_variant_get(subValue, "o", &str ); - D_PRINTF("Player Object %s\n",str); - } - } - - return 0; -} - -/* - * update device from Interface org.bluez.MediaTransport1 properties - */ -static int device_update_from_MediaTransport1(struct btd_device *device, - GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - //gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - //gint16 value_n = 0;//n gint16 - guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - //guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"State")) { - g_variant_get(subValue, "s", &str); - D_PRINTF("State %s\n", str); - if (device->transport_state) - free(device->transport_state); - device->transport_state = g_strdup(str); - } else if (0==g_strcmp0(key,"Volume")) { - g_variant_get(subValue, "q", &value_q); - D_PRINTF("Volume %d\n", value_q); - device->transport_volume = value_q; - } - } - - return 0; -} - - -static int device_update_from_Track(struct btd_device *device, - GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - //gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"Title")) { - g_variant_get(subValue, "s", &str); - D_PRINTF("Title %s\n", str); - if (device->avrcp_title) - free(device->avrcp_title); - device->avrcp_title = g_strdup(str); - } else if (0==g_strcmp0(key,"Artist")) { - g_variant_get(subValue, "s", &str); - D_PRINTF("Artist %s\n", str); - if (device->avrcp_artist) - free(device->avrcp_artist); - device->avrcp_artist = g_strdup(str); - } else if (0==g_strcmp0(key,"Duration")) { - g_variant_get(subValue, "u", &value_u); - D_PRINTF("Duration %u\n", value_u); - device->avrcp_duration = value_u; - } - } - - return 0; -} - -/* - * update device from Interface org.bluez.MediaPlayer1 properties - */ -static int device_update_from_MediaPlayer1(struct btd_device *device, - GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - //gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"Status")) { - g_variant_get(subValue, "s", &str); - D_PRINTF("Status %s\n", str); - if (device->avrcp_status) - free(device->avrcp_status); - device->avrcp_status = g_strdup(str); - } else if (0==g_strcmp0(key,"Position")) { - g_variant_get(subValue, "u", &value_u); - D_PRINTF("Position %d\n", value_u); - device->avrcp_position = value_u; - } else if (0==g_strcmp0(key,"Track")) { - device_update_from_Track(device, subValue); - } - } - - return 0; -} - -/* - * update device from Interfcace org.bluez.Device1 properties - */ -static int device_update_from_Device1(struct btd_device *device, - GVariant *value) -{ - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - //gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - //guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"Address")) { - g_variant_get(subValue, "s", &str ); - D_PRINTF("Address %s\n",str); - - if (device->bdaddr) - g_free (device->bdaddr); - - device->bdaddr = g_strdup(str); - - g_free (str); - str = NULL; - - }else if (0==g_strcmp0(key,"Name")) { - g_variant_get(subValue, "s", &str ); - D_PRINTF("Name %s\n",str); - - if (device->name) - g_free (device->name); - - device->name = g_strdup(str); - - g_free (str); - str = NULL; - - }else if (0==g_strcmp0(key,"Paired")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Paired %d\n",value_b); - device->paired = value_b; - }else if (0==g_strcmp0(key,"Trusted")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Trusted %d\n",value_b); - device->trusted = value_b; - }else if (0==g_strcmp0(key,"Connected")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Connected %d\n",value_b); - device->connected = value_b; - } - } - - return 0; - -} -#if 0 -/* - * update device from Interfcace org.bluez.MediaControl1 properties - */ -static int bluez_mediacontrol1_properties_update(struct bt_device *device, - GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - //guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str;//d gdouble - - if (0==g_strcmp0(key,"Connected")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Connected %d\n",value_b); - device->avconnected = value_b; - - }else if (0==g_strcmp0(key,"Player")) { - g_variant_get(subValue, "o", &str ); - D_PRINTF("Player Object %s\n",str); - - } - } - - return 0; - -} -#endif - -/* - * make a copy of each element - */ -struct btd_device *device_copy_from_bluez(struct bt_device* device) -{ - struct btd_device * temp; - - if (NULL == device) { - return NULL; - } - - temp = g_malloc0(sizeof(struct btd_device)); - temp->path = g_strdup(device->path); - temp->bdaddr = g_strdup(device->bdaddr); - temp->name = g_strdup(device->name); - temp->paired = device->paired; - temp->trusted = device->trusted; - temp->connected = device->connected; - temp->avconnected = device->avconnected; - temp->uuids = g_list_copy_deep(device->uuids, g_strdup, NULL); - - return temp; -} - -/* - * Force Update the device list - * Call GetManagedObjects - * Returns: 0 - success or other errors - */ -int devices_list_update(void) -{ - LOGD("\n"); - - GSList* list; - GSList* tmp; - list = GetBluezDevicesList(); - - if (NULL == list) - { - return -1; - } - - tmp = list; - - devices_list_lock(); - - devices_list_cleanup(); - - while(tmp) - { - struct bt_device *BDdevice = tmp->data; - tmp = tmp->next; - - struct btd_device * new_device = device_copy_from_bluez(BDdevice); - - if (new_device) - { - gchar * ofono_path = g_strconcat("/hfp", new_device->path, NULL); - if (ofono_path) - new_device->hfpconnected = - getOfonoModemPoweredByPath(ofono_path); - - //BluetoothManage.device = g_slist_prepend(BluetoothManage.device, new_device); - BluetoothManage.device = - g_slist_append(BluetoothManage.device, new_device); - } - - } - - FreeBluezDevicesList(list); - - devices_list_unlock(); - - - return 0; -} - - -/* - * notify::name-owner callback function - */ -static void bluez_device_added_cb(struct bt_device *device) -{ - LOGD("\n"); - - struct btd_device * new_device; - - if (NULL == device) - { - return; - } - - new_device = device_copy_from_bluez(device); - - devices_list_lock(); - - //BluetoothManage.device = g_slist_prepend(BluetoothManage.device, new_device); - BluetoothManage.device = g_slist_append(BluetoothManage.device,new_device); - if (NULL != g_RegisterCallback.binding_device_added) - { - g_RegisterCallback.binding_device_added(new_device); - } - - devices_list_unlock(); - -} - -/* - * object-removed callback function - */ -static void bluez_device_removed_cb (const gchar *path) -{ - struct btd_device *device; - - LOGD("%s\n",path); - - devices_list_lock(); - - device = devices_list_find_device_by_path(path); - - if (device) { - BluetoothManage.device = g_slist_remove_all(BluetoothManage.device, - device); - - if (NULL != g_RegisterCallback.binding_device_removed) - { - g_RegisterCallback.binding_device_removed(device); - } - - device_free(device); - } - - devices_list_unlock(); - -} - -/* - * BLUEZ interface-proxy-properties-changed callback function - */ -static void -bluez_device_properties_changed_cb (const gchar *pObjecPath, - const gchar *pInterface, - GVariant *properties) -{ - - struct btd_device *device; - -#if 0 - gchar *s; - g_print ("Path:%s, Interface:%s\n",pObjecPath, pInterface); - g_print ("type '%s'\n", g_variant_get_type_string (properties)); - s = g_variant_print (properties, TRUE); - g_print (" %s\n", s); - g_free (s); -#endif - - LOGD("%s\n",pObjecPath); - - devices_list_lock(); - - device = devices_list_find_device_by_path(pObjecPath); - - if (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) { - - device_update_from_Device1(device, properties); - - } else if (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) { - - device_update_from_MediaControl1(device, properties); - - } else if (0 == g_strcmp0(pInterface, MEDIA_PLAYER1_INTERFACE)) { - - device_update_from_MediaPlayer1(device, properties); - - } else if (0 == g_strcmp0(pInterface, MEDIA_TRANSPORT1_INTERFACE)) { - - device_update_from_MediaTransport1(device, properties); - - } - - if (g_RegisterCallback.binding_device_properties_changed) - g_RegisterCallback.binding_device_properties_changed(device); - - devices_list_unlock(); - -} - -void ofono_modem_added_cb(struct ofono_modem *modem) -{ - struct btd_device * device; - gchar *path; - - path = modem->path; - - LOGD("%s\n",path); - - if (NULL == path) - return; - - devices_list_lock(); - device = devices_list_find_device_by_path(path+4); - - if (device) - { - gboolean old_value = device->hfpconnected; - - device->hfpconnected = modem->powered; - - if ((NULL != g_RegisterCallback.binding_device_properties_changed) - && (old_value != device->hfpconnected)) - { - g_RegisterCallback.binding_device_properties_changed(device); - } - } - devices_list_unlock(); - -} - -void ofono_modem_removed_cb(struct ofono_modem *modem) -{ - struct btd_device * device; - gchar *path = modem->path; - - LOGD("%s\n",path); - - if (NULL == path) - return; - - devices_list_lock(); - device = devices_list_find_device_by_path(path+4); - - if (device) - { - gboolean old_value = device->hfpconnected; - - device->hfpconnected = FALSE; - - if ((NULL != g_RegisterCallback.binding_device_properties_changed) - && (old_value != device->hfpconnected)) - { - g_RegisterCallback.binding_device_properties_changed(device); - } - } - devices_list_unlock(); -} - -void ofono_modem_properties_change_cb(struct ofono_modem *modem) -{ - struct btd_device * device; - gchar *path = modem->path; - - LOGD("%s\n",path); - - if (NULL == path) - return; - - devices_list_lock(); - device = devices_list_find_device_by_path(path+4); - - if (device) - { - gboolean old_value = device->hfpconnected; - - device->hfpconnected = modem->powered; - - if ((NULL != g_RegisterCallback.binding_device_properties_changed) - && (old_value != device->hfpconnected)) - { - g_RegisterCallback.binding_device_properties_changed(device); - } - } - devices_list_unlock(); -} - -gboolean agent_requset_confirm( const gchar *device_path, - guint passkey, - const gchar **error) -{ - gboolean ret = FALSE; - - const gchar *myerror = ERROR_BLUEZ_REJECT; - - LOGD("-%s,%d\n",device_path,passkey); - - if (NULL != g_RegisterCallback.binding_request_confirmation) - { - - devices_list_lock(); - struct btd_device *device = devices_list_find_device_by_path(device_path); - gchar *device_bdaddr = NULL; - - if (device) - { - device_bdaddr = g_strdup(device->bdaddr); - } - devices_list_unlock(); - - if (device_bdaddr) - ret = g_RegisterCallback.binding_request_confirmation(device_bdaddr, passkey); - } - - if (TRUE == ret) - { - LOGD("return TRUE\n"); - return TRUE; - }else{ - *error = myerror; - LOGD("return FALSE\n"); - return FALSE; - } -} - - -/* - * register callback function - * Returns: 0 - success or other errors - */ -static int bt_manager_app_init(void) -{ - GError *error = NULL; - int ret; - - cli.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); - if (error) { - LOGE("Create System GDBusconnection fail\n"); - LOGE("Error:%s\n", error->message); - g_error_free(error); - return -1; - } - - cli.session_conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); - if (error) { - LOGE("Create Session GDBusconnection fail\n"); - LOGE("Error:%s\n", error->message); - g_error_free(error); - g_object_unref(cli.system_conn); - return -1; - } - - Bluez_RegisterCallback_t Bluez_API_Callback; - Bluez_API_Callback.device_added = bluez_device_added_cb; - Bluez_API_Callback.device_removed = bluez_device_removed_cb; - Bluez_API_Callback.device_properties_changed = bluez_device_properties_changed_cb; - BluezDeviceAPIRegister(&Bluez_API_Callback); - - Ofono_RegisterCallback_t Ofono_API_Callback; - Ofono_API_Callback.modem_added = ofono_modem_added_cb; - Ofono_API_Callback.modem_removed = ofono_modem_removed_cb; - Ofono_API_Callback.modem_properties_changed = ofono_modem_properties_change_cb; - OfonoModemAPIRegister(&Ofono_API_Callback); - - - Agent_RegisterCallback_t AgentRegCallback; - AgentRegCallback.agent_RequestConfirmation = agent_requset_confirm; - agent_API_register(&AgentRegCallback); - - ret = BluezManagerInit(); - if (0 != ret ) - { - LOGE("BluezManagerInit fail\n"); - return -1; - } - - ret = OfonoManagerInit(); - if (0 != ret ) - { - LOGE("OfonoManagerInit fail\n"); - - BluezManagerQuit(); - return -1; - } - - ret = agent_register(""); - if (0 != ret ) - { - LOGE("agent_register fail\n"); - - BluezManagerQuit(); - OfonoManagerQuit(); - return -1; - } - - return 0; -} - -/* - * Bluetooth Manager Thread - * register callback function and create a new GMainLoop structure - */ -static void *bt_event_loop_thread() -{ - int ret = 0; - - cli.clientloop = g_main_loop_new(NULL, FALSE); - - ret = bt_manager_app_init(); - - if (0 == ret){ - - devices_list_update(); - - BluetoothManage.inited = TRUE; - LOGD("g_main_loop_run\n"); - g_main_loop_run(cli.clientloop); - - } - - g_main_loop_unref(cli.clientloop); - - LOGD("Exit\n"); -} - -/* - * print log message - */ -void DebugTraceSendMsg(int level, gchar* message) -{ - - if (logfp) - { - struct timeval tv; - struct tm tm; - char s[32] = {0}; - - gettimeofday(&tv, NULL); - localtime_r(&tv.tv_sec, &tm); - strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", &tm); - fprintf(logfp, "[%s.%6.6d] ", s, (int)(tv.tv_usec)); - - switch (level) - { - case DT_LEVEL_ERROR: - fprintf(logfp,"[E]"); - break; - - case DT_LEVEL_WARNING: - fprintf(logfp,"[W]"); - break; - - case DT_LEVEL_NOTICE: - fprintf(logfp,"[N]"); - break; - - case DT_LEVEL_INFO: - fprintf(logfp,"[I]"); - break; - - case DT_LEVEL_DEBUG: - fprintf(logfp,"[D]"); - break; - - default: - fprintf(logfp,"[-]"); - break; - } - - fprintf(logfp,"%s\n",message); - fflush(logfp); - } -#ifdef LOCAL_PRINT_DEBUG - switch (level) - { - case DT_LEVEL_ERROR: - g_print("[E]"); - break; - - case DT_LEVEL_WARNING: - g_print("[W]"); - break; - - case DT_LEVEL_NOTICE: - g_print("[N]"); - break; - - case DT_LEVEL_INFO: - g_print("[I]"); - break; - - case DT_LEVEL_DEBUG: - g_print("[D]"); - break; - - default: - g_print("[-]"); - break; - } - - g_print("%s",message); -#endif - - if (message) { - g_free(message); - } - -} - - - -/* ------ PUBLIC PLUGIN FUNCTIONS --------- */ - -/* - * Set the Bluez Adapter Property "Powered" value - * If success return 0, else return -1; - */ -int adapter_set_powered(gboolean powervalue) -{ - LOGD("value:%d\n",powervalue); - - GError *error = NULL; - GVariant *value; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, FREEDESKTOP_PROPERTIES, - "Set", g_variant_new("(ssv)", ADAPTER_INTERFACE, - "Powered", g_variant_new("b", powervalue)), - NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; -} - -/* - * Get the Bluez Adapter Property "Powered" value - * If success return 0, else return -1; - */ -int adapter_get_powered(gboolean *powervalue) { - LOGD("\n"); - - GError *error = NULL; - GVariant *value = NULL; - GVariant *subValue = NULL; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - if (NULL == powervalue) { - LOGD("powervalue is NULL\n"); - return -1; - } - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, FREEDESKTOP_PROPERTIES, "Get", - g_variant_new("(ss)", ADAPTER_INTERFACE, "Powered"), - NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s\n", error->message); - g_error_free(error); - return -1; - } - - g_variant_get(value, "(v)", &subValue); - g_variant_get(subValue, "b", powervalue); - g_variant_unref(subValue); - - g_variant_unref(value); - - LOGD("get ret :%d\n",*powervalue); - return 0; -} - -/* - * Set the Bluez Adapter Property value - * Only support boolean property now.(Discoverable, Pairable, Powered) - * If success return 0, else return -1; - */ -int adapter_set_property(const gchar* property, gboolean setvalue) -{ - LOGD("property:%s,value:%d\n",property, setvalue); - - GError *error = NULL; - GVariant *value; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGW("BluetoothManage Not Init\n"); - return -1; - } - - if ((0!=g_strcmp0 (property, "Discoverable"))&& - (0!=g_strcmp0 (property, "Pairable"))&& - (0!=g_strcmp0 (property, "Powered"))) - { - LOGD("Invalid value\n"); - return -1; - } - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, FREEDESKTOP_PROPERTIES, - "Set", g_variant_new("(ssv)", ADAPTER_INTERFACE, - property, g_variant_new("b", setvalue)), - NULL, G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - if (NULL == value) { - LOGW ("Error : %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - - return 0; -} - - -/* - * Call the Bluez Adapter Method "StartDiscovery" - * If success return 0, else return -1; - */ -int adapter_start_discovery() -{ - LOGD("\n"); - - GError *error = NULL; - GVariant *value = NULL; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGW("BluetoothManage Not Init\n"); - return -1; - } - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, ADAPTER_INTERFACE, "StartDiscovery", - NULL, NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s\n", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; -} - -/* - * Call the Bluez Adapter Method "StopDiscovery" - * If success return 0, else return -1; - */ -int adapter_stop_discovery() -{ - LOGD("\n"); - - GError *error = NULL; - GVariant *value = NULL; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGW("BluetoothManage Not Init\n"); - return -1; - } - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, ADAPTER_INTERFACE, "StopDiscovery", - NULL, NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s\n", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - - return 0; -} - -/* - * Call the Bluez Adapter Method "RemoveDevice" - * If success return 0, else return -1; - */ -int adapter_remove_device(const gchar* bdaddr) -{ - LOGD("\n%s\n",bdaddr); - - struct btd_device * device; - gchar *path; - GError *error = NULL; - GVariant *value; - - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGW("BluetoothManage Not Init\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - ADAPTER_PATH, ADAPTER_INTERFACE, "RemoveDevice", - g_variant_new("(o)", path), NULL, - G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; - -} - - -/* - * Get the copy of device list. - */ -GSList* adapter_get_devices_list() -{ - GSList* tmp; - devices_list_lock(); - tmp = g_slist_copy_deep (BluetoothManage.device, - (GCopyFunc)device_copy, NULL); - devices_list_unlock(); - return tmp; -} - -/* - * free device list. - */ -void adapter_devices_list_free(GSList* list) -{ - if (NULL != list) - g_slist_free_full(list,(GDestroyNotify)device_free); - -} - -/* - * device_pair callback - */ -void device_pair_done_cb(GDBusConnection *source_object, - GAsyncResult *res, - gpointer user_data) -{ - LOGD("\n"); - g_dbus_connection_call_finish (source_object, res, NULL); - -} - -/* - * send pairing command - * If success return 0, else return -1; - */ -int device_pair(const gchar * bdaddr) -{ - LOGD("\n%s\n",bdaddr); - - struct btd_device * device; - gchar *path; - GError *error = NULL; - GVariant *value; - - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - -#if 0 - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, DEVICE_INTERFACE, "Pair", - NULL, NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); -#else - - g_dbus_connection_call(cli.system_conn, BLUEZ_SERVICE, - path, DEVICE_INTERFACE, "Pair", - NULL, NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, - (GAsyncReadyCallback)device_pair_done_cb, NULL); - - g_free(path); -#endif - return 0; - -} - -/* - * send cancel pairing command - * If success return 0, else return -1; - */ -int device_cancelPairing(const gchar * bdaddr) -{ - LOGD("\n%s\n",bdaddr); - - struct btd_device * device; - gchar *path; - GError *error = NULL; - GVariant *value; - - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, DEVICE_INTERFACE, "CancelPairing", - NULL, NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; - -} -/* - * send connect command - * If success return 0, else return -1; - */ -int device_connect(const gchar * bdaddr, const gchar * uuid) -{ - LOGD("\n%s\n",bdaddr); - - struct btd_device * device; - gchar *path; - GError *error = NULL; - GVariant *value; - - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, DEVICE_INTERFACE, uuid ? "ConnectProfile" : "Connect", - uuid ? g_variant_new("(s)", uuid) : NULL, - NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; - -} - -/* - * send disconnect command - * If success return 0, else return -1; - */ -int device_disconnect(const gchar* bdaddr, const gchar *uuid) -{ - LOGD("\n%s\n",bdaddr); - - struct btd_device * device; - gchar *path; - GError *error = NULL; - GVariant *value; - - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, DEVICE_INTERFACE, uuid ? "DisconnectProfile" : "Disconnect", - uuid ? g_variant_new("(s)", uuid) : NULL, - NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - return 0; -} - -/* - * set remote device property - * If success return 0, else return -1; - */ -int device_set_property(const char * bdaddr, const char *property_name, - const char *property_value) -{ - LOGD("\n%s-%s-%s\n",bdaddr,property_name,property_value); - - GError *error = NULL; - GVariant *ret; - struct btd_device * device; - gchar *path; - gboolean value; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGD("BluetoothManage Not Init\n"); - return -1; - } - - //Only support set "Trusted" - if (strcmp(property_name, "Trusted")) { - LOGD("Not support property name\n"); - return -1; - } - - if (atoi(property_value) == 1 || !strcasecmp(property_value, "true")) { - value = TRUE; - } else if (atoi(property_value) == 0 - || !strcasecmp(property_value, "false")) { - value = FALSE; - } else { - LOGD("Not support property value\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - ret = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, FREEDESKTOP_PROPERTIES, "Set", - g_variant_new("(ssv)", DEVICE_INTERFACE, property_name, - g_variant_new("b", value)), NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - g_free(path); - - if (NULL == ret) { - LOGW ("Error getting object manager client: %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(ret); - return 0; -} - -/* - * call remote device avrcp method - * Only support controls (Play, Pause, Stop, Previous, Next) - * If success return 0, else return -1; - */ -int device_call_avrcp_method(const gchar* bdaddr, const gchar* method) -{ - LOGD("device:%s,value:%d\n", bdaddr, method); - - struct btd_device * device; - GError *error = NULL; - GVariant *value; - gchar *path; - - if (FALSE == BluetoothManage_InitFlag_Get()) { - LOGW("BluetoothManage Not Init\n"); - return -1; - } - - if ((0!=g_strcmp0 (method, "Play"))&& - (0!=g_strcmp0 (method, "Pause"))&& - (0!=g_strcmp0 (method, "Stop"))&& - (0!=g_strcmp0 (method, "Previous"))&& - (0!=g_strcmp0 (method, "Next"))) - { - LOGD("Invalid method\n"); - return -1; - } - - devices_list_lock(); - device = devices_list_find_device_by_bdaddr(bdaddr); - - if (NULL == device) { - devices_list_unlock(); - LOGD("not find device\n"); - return -1; - } - path = g_strdup(device->path); - devices_list_unlock(); - - value = g_dbus_connection_call_sync(cli.system_conn, BLUEZ_SERVICE, - path, MEDIA_CONTROL1_INTERFACE, - method, NULL, NULL, - G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, - NULL, &error); - - g_free(path); - - if (NULL == value) { - LOGW ("Error : %s", error->message); - g_error_free(error); - return -1; - } - - g_variant_unref(value); - - return 0; -} - - -/* - * Stops the GMainLoop - */ -int BluetoothManagerQuit() -{ - LOGD("\n"); - - if (FALSE == BluetoothManage.inited ) - { - LOGD("BluetoothManage Not init\n"); - return -1; - } - - if(cli.clientloop){ - g_main_loop_quit(cli.clientloop); - } - - OfonoManagerQuit(); - BluezManagerQuit(); - stop_agent(); - - devices_list_lock(); - devices_list_cleanup(); - devices_list_unlock(); - - - g_mutex_clear (&(BluetoothManage.m)); - - g_object_unref(cli.system_conn); - g_object_unref(cli.session_conn); - - if (logfp) - fclose(logfp); - logfp = NULL; - - BluetoothManage.inited = FALSE; - - return 0; -} - -/* - * Create Bluetooth Manager Thread - * Note: bluetooth-api shall do BluetoothManageInit() first before call other APIs. - * bluetooth-api shall register callback function - * Returns: 0 - success or other errors - */ -int BluetoothManagerInit() { - pthread_t thread_id; - - LOGD("\n"); - - if (TRUE == BluetoothManage.inited ) - { - LOGW("BluetoothManage already init\n"); - return -1; - } - - logfp = fopen("/var/log/BluetoothManager.log", "a+"); - - if (NULL == logfp) - { - openlog("BluetoothManager", LOG_CONS | LOG_PID, LOG_USER); - syslog(LOG_WARNING, "BluetoothManager create log file fail\n"); - closelog(); - } - - g_mutex_init(&(BluetoothManage.m)); - - pthread_create(&thread_id, NULL, bt_event_loop_thread, NULL); - //pthread_setname_np(thread_id, "BT_Manager"); - sleep(1); - - return 0; -} - -/* - * Register Bluetooth Manager Callback function - */ -void BindingAPIRegister(const Binding_RegisterCallback_t* pstRegisterCallback) -{ - if (NULL != pstRegisterCallback) - { - if (NULL != pstRegisterCallback->binding_device_added) - { - g_RegisterCallback.binding_device_added = - pstRegisterCallback->binding_device_added; - } - - if (NULL != pstRegisterCallback->binding_device_removed) - { - g_RegisterCallback.binding_device_removed = - pstRegisterCallback->binding_device_removed; - } - - if (NULL != pstRegisterCallback->binding_device_properties_changed) - { - g_RegisterCallback.binding_device_properties_changed = - pstRegisterCallback->binding_device_properties_changed; - } - - if (NULL != pstRegisterCallback->binding_request_confirmation) - { - g_RegisterCallback.binding_request_confirmation = - pstRegisterCallback->binding_request_confirmation; - } - } -} - -GError* setHMIStatus(enum btStates state) { - - gchar *iconString = NULL; - GDBusConnection *connection; - GVariant *params = NULL; - GVariant *message = NULL; - GError *error = NULL; - - if (state==INACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png"; - else if (state==ACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_On-01.png"; - else iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png"; - - connection = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); - - params = g_variant_new("(is)", HOMESCREEN_BT_ICON_POSITION, iconString); - - message = g_dbus_connection_call_sync(connection, HOMESCREEN_SERVICE, - HOMESCREEN_ICON_PATH, HOMESCREEN_ICON_INTERFACE, "setStatusIcon", params, - NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - if (error) { - printf("error: %s\n", error->message); - - return error; - } else { - return NULL; - } - -} - - diff --git a/bluetooth-manager.h b/bluetooth-manager.h deleted file mode 100644 index b11b11d..0000000 --- a/bluetooth-manager.h +++ /dev/null @@ -1,201 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#ifndef BLUEZ_MANAGER_H -#define BLUEZ_MANAGER_H - -#include -#include -#include - - /* Debug Trace Level */ -#define DT_LEVEL_ERROR (1 << 1) -#define DT_LEVEL_WARNING (1 << 2) -#define DT_LEVEL_NOTICE (1 << 3) -#define DT_LEVEL_INFO (1 << 4) -#define DT_LEVEL_DEBUG (1 << 5) -//#define _DEBUG - -#define LOGE(fmt, args...) \ - DebugTraceSendMsg(DT_LEVEL_ERROR, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) -#define LOGW(fmt, args...) \ - DebugTraceSendMsg(DT_LEVEL_WARNING, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) -#define LOGN(fmt, args...) \ - DebugTraceSendMsg(DT_LEVEL_NOTICE, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) -#define LOGI(fmt, args...) \ - DebugTraceSendMsg(DT_LEVEL_INFO, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) -#define LOGD(fmt, args...) \ - DebugTraceSendMsg(DT_LEVEL_DEBUG, g_strdup_printf("[%d:%s]" fmt, __LINE__, __FUNCTION__, ## args)) - -#ifdef _DEBUG - #define _DEBUG_PRINT_DBUS - #define LOCAL_PRINT_DEBUG -#endif - -#ifdef LOCAL_PRINT_DEBUG -#define D_PRINTF(fmt, args...) \ - g_print("[DEBUG][%d:%s]"fmt, __LINE__, __FUNCTION__, ## args) -#define D_PRINTF_RAW(fmt, args...) \ - g_print(""fmt, ## args) -#else -#define D_PRINTF(fmt, args...) -#define D_PRINTF_RAW(fmt, args...) -#endif /* ifdef _DEBUG */ - -//service -#define AGENT_SERVICE "org.agent" - -//remote service -#define BLUEZ_SERVICE "org.bluez" -#define OFONO_SERVICE "org.ofono" -#define CLIENT_SERVICE "org.bluez.obex" - -//object path -#define OFONO_MANAGER_PATH "/" -#define BLUEZ_MANAGER_PATH "/" -#define AGENT_PATH "/org/bluez" -#define ADAPTER_PATH "/org/bluez/hci0" -#define OBEX_CLIENT_PATH "/org/bluez/obex" - - -//interface -#define ADAPTER_INTERFACE "org.bluez.Adapter1" -#define DEVICE_INTERFACE "org.bluez.Device1" -#define AGENT_MANAGER_INTERFACE "org.bluez.AgentManager1" -//#define SERVICE_INTERFACE "org.bluez.Service" -#define AGENT_INTERFACE "org.bluez.Agent" - -#define CLIENT_INTERFACE "org.bluez.obex.Client1" -#define TRANSFER_INTERFACE "org.bluez.obex.Transfer" -#define SESSION_INTERFACE "org.bluez.obex.Session" -#define OBEX_ERROR_INTERFACE "org.bluez.obex.Error" -#define BLUEZ_ERROR_INTERFACE "org.bluez.Error" -#define PBAP_INTERFACE "org.bluez.obex.PhonebookAccess" -#define MAP_INTERFACE "org.bluez.obex.MessageAccess" -#define MAP_MSG_INTERFACE "org.bluez.obex.Message" - -#define MEDIA_PLAYER_INTERFACE "org.bluez.MediaPlayer" -#define MEDIA_PLAYER1_INTERFACE "org.bluez.MediaPlayer1" -#define MEDIA_FOLDER_INTERFACE "org.bluez.MediaFolder" -#define MEDIA_ITEM_INTERFACE "org.bluez.MediaItem" -#define MEDIA_TRANSPORT_INTERFACE "org.bluez.MediaTransport" -#define MEDIA_TRANSPORT1_INTERFACE "org.bluez.MediaTransport1" -#define MEDIA_CONTROL1_INTERFACE "org.bluez.MediaControl1" - - -#define OFONO_HANDSFREE_INTERFACE "org.ofono.Handsfree" -#define OFONO_MANAGER_INTERFACE "org.ofono.Manager" -#define OFONO_MODEM_INTERFACE "org.ofono.Modem" -#define OFONO_VOICECALL_INTERFACE "org.ofono.VoiceCall" -#define OFONO_VOICECALL_MANAGER_INTERFACE "org.ofono.VoiceCallManager" -#define OFONO_NETWORK_REGISTRATION_INTERFACE "org.ofono.NetworkRegistration" -#define OFONO_NETWORK_OPERATOR_INTERFACE "org.ofono.NetworkOperator" -#define OFONO_CALL_VOLUME_INTERFACE "org.ofono.CallVolume" - -#define FREEDESKTOP_INTROSPECT "org.freedesktop.DBus.Introspectable" -#define FREEDESKTOP_PROPERTIES "org.freedesktop.DBus.Properties" -#define FREEDESKTOP_OBJECTMANAGER "org.freedesktop.DBus.ObjectManager" - -#define HOMESCREEN_SERVICE "org.agl.homescreen" -#define HOMESCREEN_ICON_INTERFACE "org.agl.statusbar" -#define HOMESCREEN_ICON_PATH "/StatusBar" -#define HOMESCREEN_BT_ICON_POSITION 1 - -#define DBUS_REPLY_TIMEOUT (120 * 1000) -#define DBUS_REPLY_TIMEOUT_SHORT (10 * 1000) - -#define ERROR_BLUEZ_REJECT "org.bluez.Error.Rejected" -#define ERROR_BLUEZ_CANCELED "org.bluez.Error.Canceled" -#if 0 -void DebugTraceSendMsg(int level, gchar* message); -#else - -typedef struct _client -{ - GDBusConnection *system_conn; - GDBusConnection *session_conn; - GMainLoop *clientloop; -} Client; - -//Bluetooth Device Properties -struct btd_device { - gchar *path; - gchar *bdaddr; - gchar *name; - gchar *avrcp_title; - gchar *avrcp_artist; - gchar *avrcp_status; - gchar *transport_state; - guint32 avrcp_duration; - guint32 avrcp_position; - guint16 transport_volume; - gboolean paired; - gboolean trusted; - gboolean connected; - gboolean avconnected; - gboolean hfpconnected; - GList *uuids; -}; - -typedef struct { - gboolean inited; - GMutex m; - GSList * device; -} stBluetoothManage; - -typedef struct tagBinding_RegisterCallback -{ - void (*binding_device_added)(struct btd_device *BDdevice); - void (*binding_device_removed)(struct btd_device *BDdevice); - void (*binding_device_properties_changed)(struct btd_device *BDdevice); - gboolean (*binding_request_confirmation)(const gchar *device, guint passkey); -}Binding_RegisterCallback_t; - -enum btStates {INACTIVE, ACTIVE}; - -void DebugTraceSendMsg(int level, gchar* message); - -/* ------ PUBLIC PLUGIN FUNCTIONS --------- */ -void BindingAPIRegister(const Binding_RegisterCallback_t* pstRegisterCallback); -int BluetoothManagerInit(void); -int BluetoothManagerQuit(void); - -GSList* adapter_get_devices_list() ; -void adapter_devices_list_free(GSList* list) ; - -int adapter_set_powered(gboolean value); -int adapter_get_powered(gboolean *value); -//int adapter_set_discoverable(gboolean value); -int adapter_start_discovery(); -int adapter_stop_discovery(); -int adapter_remove_device(const gchar *addr); -int device_pair(const gchar * addr); -int device_cancelPairing(const gchar * bdaddr); -int device_connect(const gchar *addr, const gchar *uuid); -int device_disconnect(const gchar *addr, const gchar *uuid); -int device_set_property(const gchar * bdaddr, const gchar *property, const gchar *value); -int device_call_avrcp_method(const gchar* device, const gchar* method); - -int adapter_set_property(const gchar* property, gboolean value) ; - -GError* setHMIStatus(enum btStates); - -#endif -#endif /* BLUETOOTH_MANAGER_H */ - - -/****************************** The End Of File ******************************/ - diff --git a/bluez-client.c b/bluez-client.c deleted file mode 100644 index d078d06..0000000 --- a/bluez-client.c +++ /dev/null @@ -1,966 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "lib_bluez.h" -#include "bluez-client.h" - -#ifdef BLUEZ_THREAD -static GMainLoop *BluezLoop; -#endif -static Bluez_RegisterCallback_t bluez_RegisterCallback = { 0 }; -static stBluezManage BluezManage = { 0 }; - - -/* ------ LOCAL FUNCTIONS --------- */ - -/* - * make a copy of each element - * And, to entirely free the new btd_device, you could do: device_free - */ -static struct bt_device *bluez_device_copy(struct bt_device* device) -{ - struct bt_device * temp; - - if (NULL == device) { - return NULL; - } - - temp = g_malloc0(sizeof(struct bt_device)); - temp->path = g_strdup(device->path); - temp->bdaddr = g_strdup(device->bdaddr); - temp->name = g_strdup(device->name); - temp->alias = g_strdup(device->alias); - temp->paired = device->paired; - temp->trusted = device->trusted; - temp->blocked = device->blocked; - temp->connected = device->connected; - temp->avconnected = device->avconnected; - temp->legacypairing = device->legacypairing; - temp->rssi = device->rssi; - temp->uuids = g_list_copy(device->uuids); - - return temp; -} - -/* - * Frees all of the memory - */ -static void bluez_device_free(struct bt_device* device) -{ - - if (NULL == device) { - return ; - } - D_PRINTF("device %p\n",device); - if (device->path) { - D_PRINTF("path:%s\n",device->path); - g_free(device->path); - device->path = NULL; - } - if (device->bdaddr) { - D_PRINTF("bdaddr:%s\n",device->bdaddr); - g_free(device->bdaddr); - device->bdaddr = NULL; - } - if (device->name) { - D_PRINTF("name:%s\n",device->name); - g_free(device->name); - device->name = NULL; - } - if (device->alias) { - D_PRINTF("alias:%s\n",device->alias); - g_free(device->alias); - device->alias = NULL; - } - - if (device->uuids){ - D_PRINTF("uuids xxx\n"); - g_list_free_full(device->uuids, g_free); - device->uuids = NULL; - } - - g_free(device); - -} - -#ifdef BLUEZ_BD_LIST - -static void bluez_devices_list_lock(void) -{ - g_mutex_lock(&(BluezManage.m)); -} - -static void bluez_devices_list_unlock(void) -{ - g_mutex_unlock(&(BluezManage.m)); -} - -static int bluez_device_path_cmp(struct bt_device * device, const gchar* pPath ) -{ - return g_strcmp0 (device->path, pPath); -} - -/* - * search device by path - * Returns the first found btd_device or NULL if it is not found - */ -static struct bt_device *bluez_devices_list_find_device_by_path(const gchar* pPath) -{ - GSList * temp; - - temp = g_slist_find_custom (BluezManage.device, pPath, - (GCompareFunc)bluez_device_path_cmp); - - if (temp) { - return temp->data; - } - - return NULL; - -} - - -static int bluez_device_bdaddr_cmp(struct bt_device * device, const gchar* pBDaddr ) -{ - return g_strcmp0 (device->bdaddr, pBDaddr); -} - -/* - * search device by path - * Returns the first found btd_device or NULL if it is not found - */ -static struct -bt_device *bluez_devices_list_find_device_by_bdaddr(const gchar* pBDaddr) -{ - GSList * temp; - - temp = g_slist_find_custom (BluezManage.device, pBDaddr, - (GCompareFunc)bluez_device_bdaddr_cmp); - - if (temp) { - return temp->data; - } - - return NULL; - -} - -/* - * remove all the devices - */ -static void bluez_devices_list_cleanup() -{ - LOGD("\n"); - GSList * temp = BluezManage.device; - while (temp) { - struct bt_device *BDdevice = temp->data; - temp = temp->next; - - BluezManage.device = g_slist_remove_all(BluezManage.device, - BDdevice); - - bluez_device_free(BDdevice); - } -} - -/* - * Get the copy of device list. - */ -GSList* bluez_devices_list_copy() -{ - GSList* tmp; - bluez_devices_list_lock(); - tmp = g_slist_copy_deep (BluezManage.device, - (GCopyFunc)bluez_device_copy, NULL); - bluez_devices_list_unlock(); - return tmp; -} - -#endif - -/* - * free device list. - */ -void bluez_devices_list_free(GSList* list) -{ - if (NULL != list) - g_slist_free_full(list,(GDestroyNotify)bluez_device_free); - -} - -/* - * update device from Interfcace org.bluez.Device1 properties - */ -static int -bluez_device1_properties_update(struct bt_device *device, GVariant *value) -{ - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - //gchar value_c = 0; - //guchar value_y = 0;//y guchar - gint16 value_n = 0;//n gint16 - //guint16 value_q = 0;//q guint16 - //gint32 value_i = 0;//i gint32 - //guint32 value_u = 0;//u guint32 - //gint64 value_x = 0;//x gint64 - //guint64 value_t = 0;//t guint64 - //gint32 value_h = 0;//h gint32 - //gdouble value_d = 0.0;//d gdouble - gchar *str; - - if (0==g_strcmp0(key,"Address")) { - g_variant_get(subValue, "s", &str ); - D_PRINTF("Address %s\n",str); - - if (device->bdaddr) - g_free (device->bdaddr); - - device->bdaddr = g_strdup(str); - - g_free (str); - str = NULL; - - }else if (0==g_strcmp0(key,"Name")) { - g_variant_get(subValue, "s", &str ); - D_PRINTF("Name %s\n",str); - - if (device->name) - g_free (device->name); - - device->name = g_strdup(str); - - g_free (str); - str = NULL; - - }else if (0==g_strcmp0(key,"Alias")) { - g_variant_get(subValue, "s", &str ); - D_PRINTF("Alias %s\n",str); - - if (device->alias) - g_free (device->alias); - - device->alias = g_strdup(str); - - g_free (str); - str = NULL; - }else if (0==g_strcmp0(key,"LegacyPairing")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("LegacyPairing %d\n",value_b); - device->legacypairing = value_b; - - }else if (0==g_strcmp0(key,"Paired")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Paired %d\n",value_b); - device->paired = value_b; - - }else if (0==g_strcmp0(key,"Trusted")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Trusted %d\n",value_b); - device->trusted = value_b; - - }else if (0==g_strcmp0(key,"Blocked")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Blocked %d\n",value_b); - device->blocked = value_b; - - }else if (0==g_strcmp0(key,"Connected")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Connected %d\n",value_b); - device->connected = value_b; - - }else if (0==g_strcmp0(key,"RSSI")) { - g_variant_get(subValue, "n", &value_n ); - D_PRINTF("RSSI %d\n",value_n); - device->rssi = value_n; - - }else if (0==g_strcmp0(key,"UUIDs")) { - GVariantIter iter; - gchar *val; - - //g_print ("type '%s'\n", g_variant_get_type_string (subValue)); - if (device->uuids) { - g_list_free_full(device->uuids, g_free); - } - - g_variant_iter_init (&iter, subValue); - while (g_variant_iter_next (&iter, "s", &val)) - { - device->uuids = g_list_append(device->uuids, g_strdup(val)); - } - } - } - - return 0; - -} - -/* - * update device from Interfcace org.bluez.MediaControl1 properties - */ -static int -bluez_mediacontrol1_properties_update(struct bt_device *device, GVariant *value) -{ - GVariantIter iter; - const gchar *key; - GVariant *subValue; - - if ((NULL==device) || (NULL==value)) - { - return -1; - } - - g_variant_iter_init (&iter, value); - while (g_variant_iter_next (&iter, "{&sv}", &key, &subValue)) - { - //gchar *s = g_variant_print (subValue, TRUE); - //g_print (" %s -> %s\n", key, s); - //g_free (s); - - gboolean value_b = FALSE;//b gboolean - gchar *str; - - if (0==g_strcmp0(key,"Connected")) { - g_variant_get(subValue, "b", &value_b ); - D_PRINTF("Connected %d\n",value_b); - device->avconnected = value_b; - - }else if (0==g_strcmp0(key,"Player")) { - g_variant_get(subValue, "o", &str ); - D_PRINTF("Player Object %s\n",str); - - } - } - - return 0; - -} - -/* - * Get the device list - * Call GetManagedObjects - * Returns: 0 - success or other errors - */ -static GSList * bluez_get_devices_list() { - LOGD("\n"); - - GError *error = NULL; - GVariant *result = NULL; - GSList *newDeviceList = NULL; - - result = g_dbus_connection_call_sync(BluezManage.system_conn, - BLUEZ_SERVICE, BLUEZ_MANAGER_PATH, FREEDESKTOP_OBJECTMANAGER, - "GetManagedObjects", NULL, NULL, - G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); - - if (error) { - LOGW ("Error : %s\n", error->message); - g_error_free(error); - return NULL; - } - - GVariant *ArrayValue = NULL; - GVariantIter *ArrayValueIter; - GVariant *Value = NULL; - - g_variant_get(result, "(*)", &ArrayValue); - - g_variant_get(ArrayValue, "a*", &ArrayValueIter); - while (g_variant_iter_loop(ArrayValueIter, "*", &Value)) { - - GVariantIter dbus_object_iter; - GVariant *dbusObjecPath; - GVariant *dbusObjecInterfaces; - - gchar *pObjecPath = NULL; - struct bt_device *device = NULL; - - g_variant_iter_init(&dbus_object_iter, Value); - - //1st : DBus Object Path - dbusObjecPath = g_variant_iter_next_value(&dbus_object_iter); - - g_variant_get(dbusObjecPath, "o", &pObjecPath); - - LOGD("object path %s\n",pObjecPath); - //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx - if ((37 != strlen(pObjecPath)) - || (NULL == g_strrstr_len(pObjecPath, 19, - ADAPTER_PATH"/dev"))) { - g_free(pObjecPath); - pObjecPath = NULL; - g_variant_unref(dbusObjecPath); - continue; - } - device = g_malloc0(sizeof(struct bt_device)); - device->path = g_strdup(pObjecPath); - g_free(pObjecPath); - pObjecPath = NULL; - g_variant_unref(dbusObjecPath); - - LOGD("Found new device%s\n",device->path ); - - //2nd : DBus Interfaces under Object Path - dbusObjecInterfaces = g_variant_iter_next_value(&dbus_object_iter); - - GVariant *interfaces_value = NULL; - g_variant_lookup(dbusObjecInterfaces, DEVICE_INTERFACE, - "*", &interfaces_value); - - if (interfaces_value) - { - bluez_device1_properties_update(device, interfaces_value); - - g_variant_unref (interfaces_value); - interfaces_value = NULL; - } - - g_variant_lookup(dbusObjecInterfaces, MEDIA_CONTROL1_INTERFACE, - "*", &interfaces_value); - - if (interfaces_value) - { - bluez_mediacontrol1_properties_update(device, interfaces_value); - - g_variant_unref (interfaces_value); - interfaces_value = NULL; - } - - g_variant_unref(dbusObjecInterfaces); - - //newDeviceList = g_slist_prepend(newDeviceList, device); - newDeviceList = g_slist_append(newDeviceList, device); - - - } - - g_variant_iter_free(ArrayValueIter); - g_variant_unref(ArrayValue); - - g_variant_unref(result); - - return newDeviceList; -} - - - -/* - * notify::name-owner callback function - */ -static void on_notify_name_owner (GObject *object, - GParamSpec *pspec, - gpointer user_data) -{ -#ifdef _DEBUG_PRINT_DBUS - GDBusObjectManagerClient *manager = G_DBUS_OBJECT_MANAGER_CLIENT (object); - gchar *name_owner; - - name_owner = g_dbus_object_manager_client_get_name_owner (manager); - g_print ("name-owner: %s\n", name_owner); - g_free (name_owner); -#endif -} - -/* - * object_added callback function - */ -static void on_object_added (GDBusObjectManager *manager, - GDBusObject *object, - gpointer user_data) -{ -#ifdef _DEBUG_PRINT_DBUS - gchar *owner; - owner = g_dbus_object_manager_client_get_name_owner ( - G_DBUS_OBJECT_MANAGER_CLIENT (manager)); - g_print ("Added object at %s (owner %s)\n", - g_dbus_object_get_object_path (object), owner); - g_free (owner); -#endif - - - const gchar *dbusObjecPath; - GError *error = NULL; - GVariant *value = NULL; - struct bt_device *device; - - dbusObjecPath = g_dbus_object_get_object_path (object); - - LOGD("%s\n", dbusObjecPath); - - //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx - if ((37 != strlen(dbusObjecPath)) - || (NULL == g_strrstr_len(dbusObjecPath, 19,ADAPTER_PATH"/dev"))) { - return; - } - - device = g_malloc0(sizeof(struct bt_device)); - device->path = g_strdup(dbusObjecPath); - - value = g_dbus_connection_call_sync(BluezManage.system_conn, BLUEZ_SERVICE, - dbusObjecPath, FREEDESKTOP_PROPERTIES, - "GetAll", g_variant_new("(s)", DEVICE_INTERFACE), - NULL, G_DBUS_CALL_FLAGS_NONE, - DBUS_REPLY_TIMEOUT, NULL, &error); - - if (error) { - LOGW ("Error : %s\n", error->message); - g_error_free(error); - g_free(device->path); - g_free(device); - return; - } - - if (value) { - GVariant *subValue; - g_variant_get(value, "(*)", &subValue); - - bluez_device1_properties_update(device, subValue); - - g_variant_unref (subValue); - g_variant_unref(value); - } - -#ifdef BLUEZ_BD_LIST - - bluez_devices_list_lock(); - - //BluezManage.device = g_slist_prepend(BluezManage.device, device); - BluezManage.device = g_slist_append(BluezManage.device, device); - - if (NULL != bluez_RegisterCallback.device_added) - { - bluez_RegisterCallback.device_added(device); - } - - bluez_devices_list_unlock(); -#else - - if (NULL != bluez_RegisterCallback.device_added) - { - bluez_RegisterCallback.device_added(device); - } - bluez_device_free(device); - -#endif -} - -/* - * object-removed callback function - */ -static void on_object_removed (GDBusObjectManager *manager, - GDBusObject *object, - gpointer user_data) -{ -#ifdef _DEBUG_PRINT_DBUS - gchar *owner; - - owner = g_dbus_object_manager_client_get_name_owner ( - G_DBUS_OBJECT_MANAGER_CLIENT (manager)); - g_print ("Removed object at %s (owner %s)\n", - g_dbus_object_get_object_path (object), owner); - g_free (owner); -#endif - - const gchar *dbusObjecPath; - //int ret; - - - dbusObjecPath = g_dbus_object_get_object_path (object); - - if ((37 != strlen(dbusObjecPath)) - || (NULL == g_strrstr_len(dbusObjecPath, 19,ADAPTER_PATH"/dev"))) { - return; - } - - if (NULL != bluez_RegisterCallback.device_removed) - { - bluez_RegisterCallback.device_removed(dbusObjecPath); - } - LOGD("%s\n", dbusObjecPath); -#ifdef BLUEZ_BD_LIST - struct bt_device *device; - - bluez_devices_list_lock(); - - device = bluez_devices_list_find_device_by_path(dbusObjecPath); - - if (device) { - LOGD("Path :%s.\n", dbusObjecPath); - BluezManage.device = g_slist_remove_all(BluezManage.device, - device); - - bluez_device_free(device); - } - - bluez_devices_list_unlock(); -#endif - -} - -/* - * BLUEZ interface-proxy-properties-changed callback function - */ -static void -on_interface_proxy_properties_changed (GDBusObjectManagerClient *manager, - GDBusObjectProxy *object_proxy, - GDBusProxy *interface_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties, - gpointer user_data) -{ - const gchar *pObjecPath; - const gchar *pInterface; - - pObjecPath = g_dbus_object_get_object_path (G_DBUS_OBJECT (object_proxy)); - pInterface = g_dbus_proxy_get_interface_name (interface_proxy); - -#ifdef _DEBUG_PRINT_DBUS - gchar *s; - g_print ("Path:%s, Interface:%s\n",pObjecPath, pInterface); - g_print ("type '%s'\n", g_variant_get_type_string (changed_properties)); - s = g_variant_print (changed_properties, TRUE); - g_print (" %s\n", s); - g_free (s); -#endif - - //ObjectPath is /org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx - - LOGD("%s\n",pObjecPath); - - if( (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) || - (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) || - (0 == g_strcmp0(pInterface, MEDIA_PLAYER1_INTERFACE)) || - (0 == g_strcmp0(pInterface, MEDIA_TRANSPORT1_INTERFACE))) { - - if (bluez_RegisterCallback.device_properties_changed) - bluez_RegisterCallback.device_properties_changed(pObjecPath, - pInterface, changed_properties); - - } - -#ifdef BLUEZ_BD_LIST - struct bt_device *device; - - if (0 == g_strcmp0(pInterface, DEVICE_INTERFACE)) { - - bluez_devices_list_lock(); - - device = bluez_devices_list_find_device_by_path(pObjecPath); - - bluez_device1_properties_update(device, changed_properties); - - bluez_devices_list_unlock(); - - } else if (0 == g_strcmp0(pInterface, MEDIA_CONTROL1_INTERFACE)) { - - bluez_devices_list_lock(); - - device = bluez_devices_list_find_device_by_path(pObjecPath); - - bluez_mediacontrol1_properties_update(device, changed_properties); - - bluez_devices_list_unlock(); - } -#endif -} - -/* - * init cli dbus connection - * Returns: 0 - success or other errors - */ -static int bluez_manager_connect_to_dbus(void) -{ - GError *error = NULL; - - BluezManage.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); - - if (error) { - LOGE("Create System GDBusconnection fail\n"); - LOGE("Error:%s\n", error->message); - g_error_free(error); - - return -1; - } - - BluezManage.session_conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error); - - if (error) { - LOGE("Create Session GDBusconnection fail\n"); - LOGE("Error:%s\n", error->message); - g_error_free(error); - - g_object_unref(BluezManage.system_conn); - - return -1; - } - - BluezManage.proxy = bluez_object_manager_client_new_for_bus_sync( - G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, BLUEZ_SERVICE, - BLUEZ_MANAGER_PATH, NULL, &error); - - if (error) { - LOGE("Create Bluez manager client fail\n"); - LOGE("Error:%s\n", error->message); - g_error_free(error); - - g_object_unref(BluezManage.system_conn); - g_object_unref(BluezManage.session_conn); - return -1; - } - - return 0; -} - - -/* - * register dbus callback function - * Returns: 0 - success or other errors - */ -static int bluez_manager_register_callback(void) -{ - - g_signal_connect (BluezManage.proxy, - "notify::name-owner", - G_CALLBACK (on_notify_name_owner), - NULL); - - g_signal_connect (BluezManage.proxy, - "object-added", - G_CALLBACK (on_object_added), - NULL); - - g_signal_connect (BluezManage.proxy, - "object-removed", - G_CALLBACK (on_object_removed), - NULL); - - g_signal_connect (BluezManage.proxy, - "interface-proxy-properties-changed", - G_CALLBACK (on_interface_proxy_properties_changed), - NULL); - - return 0; -} - -/* - * init bluez client - * Returns: 0 - success or other errors - */ -static int bluez_manager_int() -{ - int ret = 0; - - LOGD("\n"); - - ret = bluez_manager_connect_to_dbus(); - - if (ret){ - LOGE("Init Fail\n"); - return -1; - } - - bluez_manager_register_callback(); - -#ifdef BLUEZ_BD_LIST - - g_mutex_init(&(BluezManage.m)); - - BluezManage.device = bluez_get_devices_list(); - -#endif - - BluezManage.inited = TRUE; - - return 0; - -} - -#ifdef BLUEZ_THREAD -/* - * Bluetooth Manager Thread - * register callback function and create a new GMainLoop structure - */ -static void *bluez_event_loop_thread() -{ - int ret = 0; - - BluezLoop = g_main_loop_new(NULL, FALSE);; - - ret = bluez_manager_int(); - - if (0 == ret){ - LOGD("g_main_loop_run\n"); - g_main_loop_run(BluezLoop); - } - - g_main_loop_unref(BluezLoop); - LOGD("exit...\n"); -} -#endif - - -/* ------ PUBLIC FUNCTIONS --------- */ - - -/* - * Get the device list - * The list should free by FreeBluezDevicesList() - */ -GSList * GetBluezDevicesList(void) -{ - LOGD("\n"); - - GSList* newDeviceList = NULL; - - if (TRUE != BluezManage.inited) - { - LOGD("Bluez Manager is not inited\n"); - return NULL; - } - -#ifdef BLUEZ_BD_LIST - newDeviceList = bluez_devices_list_copy(); -#else - newDeviceList = bluez_get_devices_list(); -#endif - return newDeviceList; -} - -/* - * free device list. - */ -void FreeBluezDevicesList(GSList* list) -{ - bluez_devices_list_free(list); -} - -/* - * Stops the GMainLoop - */ -int BluezManagerQuit(void) -{ - LOGD("\n"); - - if (FALSE == BluezManage.inited) - { - LOGD("Bluez Manager is not inited\n"); - return -1; - } - -#ifdef BLUEZ_THREAD - g_main_loop_quit(BluezLoop); -#endif - - memset(&bluez_RegisterCallback, 0, sizeof(Bluez_RegisterCallback_t)); - - g_object_unref(BluezManage.proxy); - -#ifdef BLUEZ_BD_LIST - bluez_devices_list_lock(); - bluez_devices_list_cleanup(); - bluez_devices_list_unlock(); - - g_mutex_clear (&(BluezManage.m)); -#endif - - g_object_unref(BluezManage.system_conn); - g_object_unref(BluezManage.session_conn); - - BluezManage.inited = FALSE; - - return 0; -} - -/* - * Init Bluez Manager - */ -int BluezManagerInit() -{ - LOGD("\n"); - int ret = 0; - - - if (TRUE == BluezManage.inited) - { - LOGD("Bluez Manager is already inited\n"); - return -1; - } - -#ifdef BLUEZ_THREAD - - pthread_t thread_id; - pthread_create(&thread_id, NULL, bluez_event_loop_thread, NULL); - pthread_setname_np(thread_id, "Bluez_Manage"); - -#else - - ret = bluez_manager_int(); -#endif - - return ret; -} - -/* - * Register Bluez Manager Callback function - */ -void BluezDeviceAPIRegister(const Bluez_RegisterCallback_t* pstRegisterCallback) -{ - if (NULL != pstRegisterCallback) - { - if (NULL != pstRegisterCallback->device_added) - { - bluez_RegisterCallback.device_added = - pstRegisterCallback->device_added; - } - - if (NULL != pstRegisterCallback->device_removed) - { - bluez_RegisterCallback.device_removed = - pstRegisterCallback->device_removed; - } - - if (NULL != pstRegisterCallback->device_properties_changed) - { - bluez_RegisterCallback.device_properties_changed = - pstRegisterCallback->device_properties_changed; - } - } -} - - - diff --git a/bluez-client.h b/bluez-client.h deleted file mode 100644 index 17f82f0..0000000 --- a/bluez-client.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -#ifndef BLUEZ_CLIENT_H -#define BLUEZ_CLIENT_H - -#include -#include -#include - -#include "lib_bluez.h" -#include "bluetooth-manager.h" - -//#define BLUEZ_THREAD -//#define BLUEZ_BD_LIST - -//Bluetooth Device Properties -struct bt_device { - gchar *path; - gchar *bdaddr; - gchar *name; - gchar *alias; - gboolean paired; - gboolean trusted; - gboolean blocked; - gboolean connected; - gboolean avconnected; - gboolean legacypairing; - gint16 rssi; - GList *uuids; -}; - -typedef struct { - gboolean inited; - #ifdef BLUEZ_BD_LIST - GMutex m; - GSList * device; - #endif - GDBusObjectManager *proxy; - GDBusConnection *system_conn; - GDBusConnection *session_conn; -} stBluezManage; - -typedef struct tagBluez_RegisterCallback -{ - void (*device_added)(struct bt_device *device); - void (*device_removed)(const gchar *path); - void (*device_properties_changed)(const gchar *pObjecPath, const gchar *pInterface, GVariant *value); -}Bluez_RegisterCallback_t; - -/* --- PUBLIC FUNCTIONS --- */ -void BluezDeviceAPIRegister(const Bluez_RegisterCallback_t* pstRegisterCallback); - -int BluezManagerInit(void) ; -int BluezManagerQuit(void) ; - -GSList * GetBluezDevicesList(void); -void FreeBluezDevicesList(GSList* list) ; - -#endif /* BLUEZ_CLIENT_H */ - - -/****************************** The End Of File ******************************/ - diff --git a/export.map b/export.map deleted file mode 100644 index 0ef1ac7..0000000 --- a/export.map +++ /dev/null @@ -1 +0,0 @@ -{ global: afbBindingV1Register; local: *; }; diff --git a/lib_agent.c b/lib_agent.c deleted file mode 100644 index 6324dfb..0000000 --- a/lib_agent.c +++ /dev/null @@ -1,2504 +0,0 @@ -/* - * 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_agent.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.bluez.Agent1 - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:AGENTOrgBluezAgent1 - * @title: AGENTOrgBluezAgent1 - * @short_description: Generated C code for the org.bluez.Agent1 D-Bus interface - * - * This section contains code for working with the org.bluez.Agent1 D-Bus interface in C. - */ - -/* ---- Introspection data for org.bluez.Agent1 ---- */ - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_release = -{ - { - -1, - (gchar *) "Release", - NULL, - NULL, - NULL - }, - "handle-release", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_device, - NULL -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pincode = -{ - { - -1, - (gchar *) "pincode", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pincode, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_pin_code = -{ - { - -1, - (gchar *) "RequestPinCode", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_pin_code_IN_ARG_pointers, - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_pin_code_OUT_ARG_pointers, - NULL - }, - "handle-request-pin-code", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pincode = -{ - { - -1, - (gchar *) "pincode", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_device, - &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pincode, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_display_pin_code = -{ - { - -1, - (gchar *) "DisplayPinCode", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_display_pin_code_IN_ARG_pointers, - NULL, - NULL - }, - "handle-display-pin-code", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_device, - NULL -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_passkey = -{ - { - -1, - (gchar *) "passkey", - (gchar *) "u", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_passkey, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_passkey = -{ - { - -1, - (gchar *) "RequestPasskey", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_passkey_IN_ARG_pointers, - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_passkey_OUT_ARG_pointers, - NULL - }, - "handle-request-passkey", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_passkey = -{ - { - -1, - (gchar *) "passkey", - (gchar *) "u", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_entered = -{ - { - -1, - (gchar *) "entered", - (gchar *) "q", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_device, - &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_passkey, - &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_entered, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_display_passkey = -{ - { - -1, - (gchar *) "DisplayPasskey", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_display_passkey_IN_ARG_pointers, - NULL, - NULL - }, - "handle-display-passkey", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_passkey = -{ - { - -1, - (gchar *) "passkey", - (gchar *) "u", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_device, - &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_passkey, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_confirmation = -{ - { - -1, - (gchar *) "RequestConfirmation", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_confirmation_IN_ARG_pointers, - NULL, - NULL - }, - "handle-request-confirmation", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_device, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_request_authorization = -{ - { - -1, - (gchar *) "RequestAuthorization", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_request_authorization_IN_ARG_pointers, - NULL, - NULL - }, - "handle-request-authorization", - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_device = -{ - { - -1, - (gchar *) "device", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_uuid = -{ - { - -1, - (gchar *) "uuid", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_device, - &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_uuid, - NULL -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_authorize_service = -{ - { - -1, - (gchar *) "AuthorizeService", - (GDBusArgInfo **) &_agent_org_bluez_agent1_method_info_authorize_service_IN_ARG_pointers, - NULL, - NULL - }, - "handle-authorize-service", - FALSE -}; - -static const _ExtendedGDBusMethodInfo _agent_org_bluez_agent1_method_info_cancel = -{ - { - -1, - (gchar *) "Cancel", - NULL, - NULL, - NULL - }, - "handle-cancel", - FALSE -}; - -static const _ExtendedGDBusMethodInfo * const _agent_org_bluez_agent1_method_info_pointers[] = -{ - &_agent_org_bluez_agent1_method_info_release, - &_agent_org_bluez_agent1_method_info_request_pin_code, - &_agent_org_bluez_agent1_method_info_display_pin_code, - &_agent_org_bluez_agent1_method_info_request_passkey, - &_agent_org_bluez_agent1_method_info_display_passkey, - &_agent_org_bluez_agent1_method_info_request_confirmation, - &_agent_org_bluez_agent1_method_info_request_authorization, - &_agent_org_bluez_agent1_method_info_authorize_service, - &_agent_org_bluez_agent1_method_info_cancel, - NULL -}; - -static const _ExtendedGDBusInterfaceInfo _agent_org_bluez_agent1_interface_info = -{ - { - -1, - (gchar *) "org.bluez.Agent1", - (GDBusMethodInfo **) &_agent_org_bluez_agent1_method_info_pointers, - NULL, - NULL, - NULL - }, - "org-bluez-agent1", -}; - - -/** - * agent_org_bluez_agent1_interface_info: - * - * Gets a machine-readable description of the org.bluez.Agent1 D-Bus interface. - * - * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. - */ -GDBusInterfaceInfo * -agent_org_bluez_agent1_interface_info (void) -{ - return (GDBusInterfaceInfo *) &_agent_org_bluez_agent1_interface_info.parent_struct; -} - -/** - * agent_org_bluez_agent1_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 #AGENTOrgBluezAgent1 interface for a concrete class. - * The properties are overridden in the order they are defined. - * - * Returns: The last property id. - */ -guint -agent_org_bluez_agent1_override_properties (GObjectClass *klass, guint property_id_begin) -{ - return property_id_begin - 1; -} - - - -/** - * AGENTOrgBluezAgent1: - * - * Abstract interface type for the D-Bus interface org.bluez.Agent1. - */ - -/** - * AGENTOrgBluezAgent1Iface: - * @parent_iface: The parent interface. - * @handle_authorize_service: Handler for the #AGENTOrgBluezAgent1::handle-authorize-service signal. - * @handle_cancel: Handler for the #AGENTOrgBluezAgent1::handle-cancel signal. - * @handle_display_passkey: Handler for the #AGENTOrgBluezAgent1::handle-display-passkey signal. - * @handle_display_pin_code: Handler for the #AGENTOrgBluezAgent1::handle-display-pin-code signal. - * @handle_release: Handler for the #AGENTOrgBluezAgent1::handle-release signal. - * @handle_request_authorization: Handler for the #AGENTOrgBluezAgent1::handle-request-authorization signal. - * @handle_request_confirmation: Handler for the #AGENTOrgBluezAgent1::handle-request-confirmation signal. - * @handle_request_passkey: Handler for the #AGENTOrgBluezAgent1::handle-request-passkey signal. - * @handle_request_pin_code: Handler for the #AGENTOrgBluezAgent1::handle-request-pin-code signal. - * - * Virtual table for the D-Bus interface org.bluez.Agent1. - */ - -typedef AGENTOrgBluezAgent1Iface AGENTOrgBluezAgent1Interface; -G_DEFINE_INTERFACE (AGENTOrgBluezAgent1, agent_org_bluez_agent1, G_TYPE_OBJECT); - -static void -agent_org_bluez_agent1_default_init (AGENTOrgBluezAgent1Iface *iface) -{ - /* GObject signals for incoming D-Bus method calls: */ - /** - * AGENTOrgBluezAgent1::handle-release: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the Release() 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 agent_org_bluez_agent1_complete_release() 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", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_release), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - - /** - * AGENTOrgBluezAgent1::handle-request-pin-code: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the RequestPinCode() 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 agent_org_bluez_agent1_complete_request_pin_code() 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-pin-code", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_pin_code), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 2, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); - - /** - * AGENTOrgBluezAgent1::handle-display-pin-code: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * @arg_pincode: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the DisplayPinCode() 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 agent_org_bluez_agent1_complete_display_pin_code() 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-display-pin-code", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_display_pin_code), - 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); - - /** - * AGENTOrgBluezAgent1::handle-request-passkey: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the RequestPasskey() 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 agent_org_bluez_agent1_complete_request_passkey() 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-passkey", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_passkey), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 2, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); - - /** - * AGENTOrgBluezAgent1::handle-display-passkey: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * @arg_passkey: Argument passed by remote caller. - * @arg_entered: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the DisplayPasskey() 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 agent_org_bluez_agent1_complete_display_passkey() 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-display-passkey", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_display_passkey), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 4, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT); - - /** - * AGENTOrgBluezAgent1::handle-request-confirmation: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * @arg_passkey: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the RequestConfirmation() 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 agent_org_bluez_agent1_complete_request_confirmation() 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-confirmation", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_confirmation), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 3, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT); - - /** - * AGENTOrgBluezAgent1::handle-request-authorization: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the RequestAuthorization() 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 agent_org_bluez_agent1_complete_request_authorization() 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-authorization", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_request_authorization), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 2, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); - - /** - * AGENTOrgBluezAgent1::handle-authorize-service: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * @arg_device: Argument passed by remote caller. - * @arg_uuid: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the AuthorizeService() 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 agent_org_bluez_agent1_complete_authorize_service() 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-authorize-service", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_authorize_service), - 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); - - /** - * AGENTOrgBluezAgent1::handle-cancel: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the Cancel() 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 agent_org_bluez_agent1_complete_cancel() 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-cancel", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (AGENTOrgBluezAgent1Iface, handle_cancel), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - -} - -/** - * agent_org_bluez_agent1_call_release: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @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 Release() 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 agent_org_bluez_agent1_call_release_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_release_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_release ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Release", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_release_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_release(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_release(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_release_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_release_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the Release() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_release() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_release_sync ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Release", - 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; -} - -/** - * agent_org_bluez_agent1_call_request_pin_code: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: 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 RequestPinCode() 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 agent_org_bluez_agent1_call_request_pin_code_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_request_pin_code_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_request_pin_code ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "RequestPinCode", - g_variant_new ("(o)", - arg_device), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_request_pin_code_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @out_pincode: (out): Return location for return parameter or %NULL to ignore. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_pin_code(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_request_pin_code(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_pin_code_finish ( - AGENTOrgBluezAgent1 *proxy, - gchar **out_pincode, - 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_pincode); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * agent_org_bluez_agent1_call_request_pin_code_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @out_pincode: (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 RequestPinCode() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_request_pin_code() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_pin_code_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - gchar **out_pincode, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "RequestPinCode", - g_variant_new ("(o)", - arg_device), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - error); - if (_ret == NULL) - goto _out; - g_variant_get (_ret, - "(s)", - out_pincode); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * agent_org_bluez_agent1_call_display_pin_code: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_pincode: 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 DisplayPinCode() 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 agent_org_bluez_agent1_call_display_pin_code_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_display_pin_code_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_display_pin_code ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_pincode, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "DisplayPinCode", - g_variant_new ("(os)", - arg_device, - arg_pincode), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_display_pin_code_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_display_pin_code(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_display_pin_code(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_display_pin_code_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_display_pin_code_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_pincode: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the DisplayPinCode() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_display_pin_code() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_display_pin_code_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_pincode, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "DisplayPinCode", - g_variant_new ("(os)", - arg_device, - arg_pincode), - 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; -} - -/** - * agent_org_bluez_agent1_call_request_passkey: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: 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 RequestPasskey() 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 agent_org_bluez_agent1_call_request_passkey_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_request_passkey_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_request_passkey ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "RequestPasskey", - g_variant_new ("(o)", - arg_device), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_request_passkey_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @out_passkey: (out): Return location for return parameter or %NULL to ignore. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_passkey(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_request_passkey(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_passkey_finish ( - AGENTOrgBluezAgent1 *proxy, - guint *out_passkey, - 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, - "(u)", - out_passkey); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * agent_org_bluez_agent1_call_request_passkey_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @out_passkey: (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 RequestPasskey() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_request_passkey() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_passkey_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint *out_passkey, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "RequestPasskey", - g_variant_new ("(o)", - arg_device), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - error); - if (_ret == NULL) - goto _out; - g_variant_get (_ret, - "(u)", - out_passkey); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * agent_org_bluez_agent1_call_display_passkey: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_passkey: Argument to pass with the method invocation. - * @arg_entered: 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 DisplayPasskey() 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 agent_org_bluez_agent1_call_display_passkey_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_display_passkey_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_display_passkey ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - guint16 arg_entered, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "DisplayPasskey", - g_variant_new ("(ouq)", - arg_device, - arg_passkey, - arg_entered), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_display_passkey_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_display_passkey(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_display_passkey(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_display_passkey_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_display_passkey_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_passkey: Argument to pass with the method invocation. - * @arg_entered: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the DisplayPasskey() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_display_passkey() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_display_passkey_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - guint16 arg_entered, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "DisplayPasskey", - g_variant_new ("(ouq)", - arg_device, - arg_passkey, - arg_entered), - 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; -} - -/** - * agent_org_bluez_agent1_call_request_confirmation: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_passkey: 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 RequestConfirmation() 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 agent_org_bluez_agent1_call_request_confirmation_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_request_confirmation_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_request_confirmation ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "RequestConfirmation", - g_variant_new ("(ou)", - arg_device, - arg_passkey), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_request_confirmation_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_confirmation(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_request_confirmation(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_confirmation_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_request_confirmation_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_passkey: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the RequestConfirmation() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_request_confirmation() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_confirmation_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "RequestConfirmation", - g_variant_new ("(ou)", - arg_device, - arg_passkey), - 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; -} - -/** - * agent_org_bluez_agent1_call_request_authorization: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: 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 RequestAuthorization() 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 agent_org_bluez_agent1_call_request_authorization_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_request_authorization_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_request_authorization ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "RequestAuthorization", - g_variant_new ("(o)", - arg_device), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_request_authorization_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_request_authorization(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_request_authorization(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_authorization_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_request_authorization_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the RequestAuthorization() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_request_authorization() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_request_authorization_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "RequestAuthorization", - g_variant_new ("(o)", - arg_device), - 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; -} - -/** - * agent_org_bluez_agent1_call_authorize_service: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_uuid: 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 AuthorizeService() 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 agent_org_bluez_agent1_call_authorize_service_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_authorize_service_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_authorize_service ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_uuid, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "AuthorizeService", - g_variant_new ("(os)", - arg_device, - arg_uuid), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_authorize_service_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_authorize_service(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_authorize_service(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_authorize_service_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_authorize_service_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @arg_device: Argument to pass with the method invocation. - * @arg_uuid: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the AuthorizeService() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_authorize_service() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_authorize_service_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_uuid, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "AuthorizeService", - g_variant_new ("(os)", - arg_device, - arg_uuid), - 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; -} - -/** - * agent_org_bluez_agent1_call_cancel: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @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 Cancel() 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 agent_org_bluez_agent1_call_cancel_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_call_cancel_sync() for the synchronous, blocking version of this method. - */ -void -agent_org_bluez_agent1_call_cancel ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Cancel", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * agent_org_bluez_agent1_call_cancel_finish: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_call_cancel(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with agent_org_bluez_agent1_call_cancel(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_cancel_finish ( - AGENTOrgBluezAgent1 *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; -} - -/** - * agent_org_bluez_agent1_call_cancel_sync: - * @proxy: A #AGENTOrgBluezAgent1Proxy. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the Cancel() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_call_cancel() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -agent_org_bluez_agent1_call_cancel_sync ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Cancel", - 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; -} - -/** - * agent_org_bluez_agent1_complete_release: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the Release() 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 -agent_org_bluez_agent1_complete_release ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_request_pin_code: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * @pincode: Parameter to return. - * - * Helper function used in service implementations to finish handling invocations of the RequestPinCode() 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 -agent_org_bluez_agent1_complete_request_pin_code ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *pincode) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("(s)", - pincode)); -} - -/** - * agent_org_bluez_agent1_complete_display_pin_code: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the DisplayPinCode() 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 -agent_org_bluez_agent1_complete_display_pin_code ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_request_passkey: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * @passkey: Parameter to return. - * - * Helper function used in service implementations to finish handling invocations of the RequestPasskey() 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 -agent_org_bluez_agent1_complete_request_passkey ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - guint passkey) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("(u)", - passkey)); -} - -/** - * agent_org_bluez_agent1_complete_display_passkey: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the DisplayPasskey() 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 -agent_org_bluez_agent1_complete_display_passkey ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_request_confirmation: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the RequestConfirmation() 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 -agent_org_bluez_agent1_complete_request_confirmation ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_request_authorization: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the RequestAuthorization() 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 -agent_org_bluez_agent1_complete_request_authorization ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_authorize_service: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the AuthorizeService() 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 -agent_org_bluez_agent1_complete_authorize_service ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * agent_org_bluez_agent1_complete_cancel: - * @object: A #AGENTOrgBluezAgent1. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the Cancel() 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 -agent_org_bluez_agent1_complete_cancel ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/* ------------------------------------------------------------------------ */ - -/** - * AGENTOrgBluezAgent1Proxy: - * - * The #AGENTOrgBluezAgent1Proxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * AGENTOrgBluezAgent1ProxyClass: - * @parent_class: The parent class. - * - * Class structure for #AGENTOrgBluezAgent1Proxy. - */ - -struct _AGENTOrgBluezAgent1ProxyPrivate -{ - GData *qdata; -}; - -static void agent_org_bluez_agent1_proxy_iface_init (AGENTOrgBluezAgent1Iface *iface); - -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Proxy, agent_org_bluez_agent1_proxy, G_TYPE_DBUS_PROXY, - G_ADD_PRIVATE (AGENTOrgBluezAgent1Proxy) - G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_proxy_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Proxy, agent_org_bluez_agent1_proxy, G_TYPE_DBUS_PROXY, - G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_proxy_iface_init)); - -#endif -static void -agent_org_bluez_agent1_proxy_finalize (GObject *object) -{ - AGENTOrgBluezAgent1Proxy *proxy = AGENT_ORG_BLUEZ_AGENT1_PROXY (object); - g_datalist_clear (&proxy->priv->qdata); - G_OBJECT_CLASS (agent_org_bluez_agent1_proxy_parent_class)->finalize (object); -} - -static void -agent_org_bluez_agent1_proxy_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -agent_org_bluez_agent1_proxy_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -agent_org_bluez_agent1_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 *) &_agent_org_bluez_agent1_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], AGENT_TYPE_ORG_BLUEZ_AGENT1); - 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, AGENT_TYPE_ORG_BLUEZ_AGENT1); - 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 -agent_org_bluez_agent1_proxy_g_properties_changed (GDBusProxy *_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties) -{ - AGENTOrgBluezAgent1Proxy *proxy = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 *) &_agent_org_bluez_agent1_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 -agent_org_bluez_agent1_proxy_init (AGENTOrgBluezAgent1Proxy *proxy) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - proxy->priv = agent_org_bluez_agent1_proxy_get_instance_private (proxy); -#else - proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyPrivate); -#endif - - g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), agent_org_bluez_agent1_interface_info ()); -} - -static void -agent_org_bluez_agent1_proxy_class_init (AGENTOrgBluezAgent1ProxyClass *klass) -{ - GObjectClass *gobject_class; - GDBusProxyClass *proxy_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = agent_org_bluez_agent1_proxy_finalize; - gobject_class->get_property = agent_org_bluez_agent1_proxy_get_property; - gobject_class->set_property = agent_org_bluez_agent1_proxy_set_property; - - proxy_class = G_DBUS_PROXY_CLASS (klass); - proxy_class->g_signal = agent_org_bluez_agent1_proxy_g_signal; - proxy_class->g_properties_changed = agent_org_bluez_agent1_proxy_g_properties_changed; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (AGENTOrgBluezAgent1ProxyPrivate)); -#endif -} - -static void -agent_org_bluez_agent1_proxy_iface_init (AGENTOrgBluezAgent1Iface *iface) -{ -} - -/** - * agent_org_bluez_agent1_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.bluez.Agent1. 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 agent_org_bluez_agent1_proxy_new_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_proxy_new_sync() for the synchronous, blocking version of this constructor. - */ -void -agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_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.bluez.Agent1", NULL); -} - -/** - * agent_org_bluez_agent1_proxy_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_proxy_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with agent_org_bluez_agent1_proxy_new(). - * - * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. - */ -AGENTOrgBluezAgent1 * -agent_org_bluez_agent1_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 AGENT_ORG_BLUEZ_AGENT1 (ret); - else - return NULL; -} - -/** - * agent_org_bluez_agent1_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.bluez.Agent1. See g_dbus_proxy_new_sync() for more details. - * - * The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_proxy_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. - */ -AGENTOrgBluezAgent1 * -agent_org_bluez_agent1_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error) -{ - GInitable *ret; - ret = g_initable_new (AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.bluez.Agent1", NULL); - if (ret != NULL) - return AGENT_ORG_BLUEZ_AGENT1 (ret); - else - return NULL; -} - - -/** - * agent_org_bluez_agent1_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 agent_org_bluez_agent1_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 agent_org_bluez_agent1_proxy_new_for_bus_finish() to get the result of the operation. - * - * See agent_org_bluez_agent1_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_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.bluez.Agent1", NULL); -} - -/** - * agent_org_bluez_agent1_proxy_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to agent_org_bluez_agent1_proxy_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with agent_org_bluez_agent1_proxy_new_for_bus(). - * - * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. - */ -AGENTOrgBluezAgent1 * -agent_org_bluez_agent1_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 AGENT_ORG_BLUEZ_AGENT1 (ret); - else - return NULL; -} - -/** - * agent_org_bluez_agent1_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 agent_org_bluez_agent1_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. - * - * The calling thread is blocked until a reply is received. - * - * See agent_org_bluez_agent1_proxy_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type AGENTOrgBluezAgent1Proxy): The constructed proxy object or %NULL if @error is set. - */ -AGENTOrgBluezAgent1 * -agent_org_bluez_agent1_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 (AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.bluez.Agent1", NULL); - if (ret != NULL) - return AGENT_ORG_BLUEZ_AGENT1 (ret); - else - return NULL; -} - - -/* ------------------------------------------------------------------------ */ - -/** - * AGENTOrgBluezAgent1Skeleton: - * - * The #AGENTOrgBluezAgent1Skeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * AGENTOrgBluezAgent1SkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #AGENTOrgBluezAgent1Skeleton. - */ - -struct _AGENTOrgBluezAgent1SkeletonPrivate -{ - GValue *properties; - GList *changed_properties; - GSource *changed_properties_idle_source; - GMainContext *context; - GMutex lock; -}; - -static void -_agent_org_bluez_agent1_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) -{ - AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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], AGENT_TYPE_ORG_BLUEZ_AGENT1); - 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, AGENT_TYPE_ORG_BLUEZ_AGENT1); - 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 * -_agent_org_bluez_agent1_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) -{ - AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 -_agent_org_bluez_agent1_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) -{ - AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 *) &_agent_org_bluez_agent1_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 _agent_org_bluez_agent1_skeleton_vtable = -{ - _agent_org_bluez_agent1_skeleton_handle_method_call, - _agent_org_bluez_agent1_skeleton_handle_get_property, - _agent_org_bluez_agent1_skeleton_handle_set_property, - {NULL} -}; - -static GDBusInterfaceInfo * -agent_org_bluez_agent1_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return agent_org_bluez_agent1_interface_info (); -} - -static GDBusInterfaceVTable * -agent_org_bluez_agent1_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return (GDBusInterfaceVTable *) &_agent_org_bluez_agent1_skeleton_vtable; -} - -static GVariant * -agent_org_bluez_agent1_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) -{ - AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_SKELETON (_skeleton); - - GVariantBuilder builder; - guint n; - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - if (_agent_org_bluez_agent1_interface_info.parent_struct.properties == NULL) - goto out; - for (n = 0; _agent_org_bluez_agent1_interface_info.parent_struct.properties[n] != NULL; n++) - { - GDBusPropertyInfo *info = _agent_org_bluez_agent1_interface_info.parent_struct.properties[n]; - if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) - { - GVariant *value; - value = _agent_org_bluez_agent1_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.bluez.Agent1", 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 -agent_org_bluez_agent1_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) -{ -} - -static void agent_org_bluez_agent1_skeleton_iface_init (AGENTOrgBluezAgent1Iface *iface); -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Skeleton, agent_org_bluez_agent1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_ADD_PRIVATE (AGENTOrgBluezAgent1Skeleton) - G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_skeleton_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (AGENTOrgBluezAgent1Skeleton, agent_org_bluez_agent1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_IMPLEMENT_INTERFACE (AGENT_TYPE_ORG_BLUEZ_AGENT1, agent_org_bluez_agent1_skeleton_iface_init)); - -#endif -static void -agent_org_bluez_agent1_skeleton_finalize (GObject *object) -{ - AGENTOrgBluezAgent1Skeleton *skeleton = AGENT_ORG_BLUEZ_AGENT1_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 (agent_org_bluez_agent1_skeleton_parent_class)->finalize (object); -} - -static void -agent_org_bluez_agent1_skeleton_init (AGENTOrgBluezAgent1Skeleton *skeleton) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - skeleton->priv = agent_org_bluez_agent1_skeleton_get_instance_private (skeleton); -#else - skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonPrivate); -#endif - - g_mutex_init (&skeleton->priv->lock); - skeleton->priv->context = g_main_context_ref_thread_default (); -} - -static void -agent_org_bluez_agent1_skeleton_class_init (AGENTOrgBluezAgent1SkeletonClass *klass) -{ - GObjectClass *gobject_class; - GDBusInterfaceSkeletonClass *skeleton_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = agent_org_bluez_agent1_skeleton_finalize; - - skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); - skeleton_class->get_info = agent_org_bluez_agent1_skeleton_dbus_interface_get_info; - skeleton_class->get_properties = agent_org_bluez_agent1_skeleton_dbus_interface_get_properties; - skeleton_class->flush = agent_org_bluez_agent1_skeleton_dbus_interface_flush; - skeleton_class->get_vtable = agent_org_bluez_agent1_skeleton_dbus_interface_get_vtable; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (AGENTOrgBluezAgent1SkeletonPrivate)); -#endif -} - -static void -agent_org_bluez_agent1_skeleton_iface_init (AGENTOrgBluezAgent1Iface *iface) -{ -} - -/** - * agent_org_bluez_agent1_skeleton_new: - * - * Creates a skeleton object for the D-Bus interface org.bluez.Agent1. - * - * Returns: (transfer full) (type AGENTOrgBluezAgent1Skeleton): The skeleton object. - */ -AGENTOrgBluezAgent1 * -agent_org_bluez_agent1_skeleton_new (void) -{ - return AGENT_ORG_BLUEZ_AGENT1 (g_object_new (AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, NULL)); -} - diff --git a/lib_agent.h b/lib_agent.h deleted file mode 100644 index 0a355ee..0000000 --- a/lib_agent.h +++ /dev/null @@ -1,409 +0,0 @@ -/* - * 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. - */ - -#ifndef __LIB_AGENT_H__ -#define __LIB_AGENT_H__ - -#include - -G_BEGIN_DECLS - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.bluez.Agent1 */ - -#define AGENT_TYPE_ORG_BLUEZ_AGENT1 (agent_org_bluez_agent1_get_type ()) -#define AGENT_ORG_BLUEZ_AGENT1(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1, AGENTOrgBluezAgent1)) -#define AGENT_IS_ORG_BLUEZ_AGENT1(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1)) -#define AGENT_ORG_BLUEZ_AGENT1_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1, AGENTOrgBluezAgent1Iface)) - -struct _AGENTOrgBluezAgent1; -typedef struct _AGENTOrgBluezAgent1 AGENTOrgBluezAgent1; -typedef struct _AGENTOrgBluezAgent1Iface AGENTOrgBluezAgent1Iface; - -struct _AGENTOrgBluezAgent1Iface -{ - GTypeInterface parent_iface; - - gboolean (*handle_authorize_service) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device, - const gchar *arg_uuid); - - gboolean (*handle_cancel) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_display_passkey) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device, - guint arg_passkey, - guint16 arg_entered); - - gboolean (*handle_display_pin_code) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device, - const gchar *arg_pincode); - - gboolean (*handle_release) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_request_authorization) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device); - - gboolean (*handle_request_confirmation) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device, - guint arg_passkey); - - gboolean (*handle_request_passkey) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device); - - gboolean (*handle_request_pin_code) ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *arg_device); - -}; - -GType agent_org_bluez_agent1_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *agent_org_bluez_agent1_interface_info (void); -guint agent_org_bluez_agent1_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void agent_org_bluez_agent1_complete_release ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_request_pin_code ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - const gchar *pincode); - -void agent_org_bluez_agent1_complete_display_pin_code ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_request_passkey ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation, - guint passkey); - -void agent_org_bluez_agent1_complete_display_passkey ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_request_confirmation ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_request_authorization ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_authorize_service ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - -void agent_org_bluez_agent1_complete_cancel ( - AGENTOrgBluezAgent1 *object, - GDBusMethodInvocation *invocation); - - - -/* D-Bus method calls: */ -void agent_org_bluez_agent1_call_release ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_release_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_release_sync ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_request_pin_code ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_request_pin_code_finish ( - AGENTOrgBluezAgent1 *proxy, - gchar **out_pincode, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_request_pin_code_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - gchar **out_pincode, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_display_pin_code ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_pincode, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_display_pin_code_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_display_pin_code_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_pincode, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_request_passkey ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_request_passkey_finish ( - AGENTOrgBluezAgent1 *proxy, - guint *out_passkey, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_request_passkey_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint *out_passkey, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_display_passkey ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - guint16 arg_entered, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_display_passkey_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_display_passkey_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - guint16 arg_entered, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_request_confirmation ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_request_confirmation_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_request_confirmation_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - guint arg_passkey, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_request_authorization ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_request_authorization_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_request_authorization_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_authorize_service ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_uuid, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_authorize_service_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_authorize_service_sync ( - AGENTOrgBluezAgent1 *proxy, - const gchar *arg_device, - const gchar *arg_uuid, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_call_cancel ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean agent_org_bluez_agent1_call_cancel_finish ( - AGENTOrgBluezAgent1 *proxy, - GAsyncResult *res, - GError **error); - -gboolean agent_org_bluez_agent1_call_cancel_sync ( - AGENTOrgBluezAgent1 *proxy, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY (agent_org_bluez_agent1_proxy_get_type ()) -#define AGENT_ORG_BLUEZ_AGENT1_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1Proxy)) -#define AGENT_ORG_BLUEZ_AGENT1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyClass)) -#define AGENT_ORG_BLUEZ_AGENT1_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY, AGENTOrgBluezAgent1ProxyClass)) -#define AGENT_IS_ORG_BLUEZ_AGENT1_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY)) -#define AGENT_IS_ORG_BLUEZ_AGENT1_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_PROXY)) - -typedef struct _AGENTOrgBluezAgent1Proxy AGENTOrgBluezAgent1Proxy; -typedef struct _AGENTOrgBluezAgent1ProxyClass AGENTOrgBluezAgent1ProxyClass; -typedef struct _AGENTOrgBluezAgent1ProxyPrivate AGENTOrgBluezAgent1ProxyPrivate; - -struct _AGENTOrgBluezAgent1Proxy -{ - /*< private >*/ - GDBusProxy parent_instance; - AGENTOrgBluezAgent1ProxyPrivate *priv; -}; - -struct _AGENTOrgBluezAgent1ProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType agent_org_bluez_agent1_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (AGENTOrgBluezAgent1Proxy, g_object_unref) -#endif - -void agent_org_bluez_agent1_proxy_new ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_finish ( - GAsyncResult *res, - GError **error); -AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void agent_org_bluez_agent1_proxy_new_for_bus ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -AGENTOrgBluezAgent1 *agent_org_bluez_agent1_proxy_new_for_bus_sync ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -/* ---- */ - -#define AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON (agent_org_bluez_agent1_skeleton_get_type ()) -#define AGENT_ORG_BLUEZ_AGENT1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1Skeleton)) -#define AGENT_ORG_BLUEZ_AGENT1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonClass)) -#define AGENT_ORG_BLUEZ_AGENT1_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON, AGENTOrgBluezAgent1SkeletonClass)) -#define AGENT_IS_ORG_BLUEZ_AGENT1_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON)) -#define AGENT_IS_ORG_BLUEZ_AGENT1_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), AGENT_TYPE_ORG_BLUEZ_AGENT1_SKELETON)) - -typedef struct _AGENTOrgBluezAgent1Skeleton AGENTOrgBluezAgent1Skeleton; -typedef struct _AGENTOrgBluezAgent1SkeletonClass AGENTOrgBluezAgent1SkeletonClass; -typedef struct _AGENTOrgBluezAgent1SkeletonPrivate AGENTOrgBluezAgent1SkeletonPrivate; - -struct _AGENTOrgBluezAgent1Skeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - AGENTOrgBluezAgent1SkeletonPrivate *priv; -}; - -struct _AGENTOrgBluezAgent1SkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType agent_org_bluez_agent1_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (AGENTOrgBluezAgent1Skeleton, g_object_unref) -#endif - -AGENTOrgBluezAgent1 *agent_org_bluez_agent1_skeleton_new (void); - - -G_END_DECLS - -#endif /* __LIB_AGENT_H__ */ diff --git a/lib_bluez.c b/lib_bluez.c deleted file mode 100644 index 58d844d..0000000 --- a/lib_bluez.c +++ /dev/null @@ -1,630 +0,0 @@ -/* - * 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_bluez.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 Object, ObjectProxy and ObjectSkeleton - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:BLUEZObject - * @title: BLUEZObject - * @short_description: Specialized GDBusObject types - * - * This section contains the #BLUEZObject, #BLUEZObjectProxy, and #BLUEZObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. - */ - -/** - * BLUEZObject: - * - * The #BLUEZObject type is a specialized container of interfaces. - */ - -/** - * BLUEZObjectIface: - * @parent_iface: The parent interface. - * - * Virtual table for the #BLUEZObject interface. - */ - -typedef BLUEZObjectIface BLUEZObjectInterface; -G_DEFINE_INTERFACE_WITH_CODE (BLUEZObject, bluez_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT)); - -static void -bluez_object_default_init (BLUEZObjectIface *iface) -{ -} - - - -static void -bluez_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); -} - -/** - * BLUEZObjectProxy: - * - * The #BLUEZObjectProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * BLUEZObjectProxyClass: - * @parent_class: The parent class. - * - * Class structure for #BLUEZObjectProxy. - */ - -static void -bluez_object_proxy__bluez_object_iface_init (BLUEZObjectIface *iface G_GNUC_UNUSED) -{ -} - -static void -bluez_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) -{ - iface->interface_added = bluez_object_notify; - iface->interface_removed = bluez_object_notify; -} - - -G_DEFINE_TYPE_WITH_CODE (BLUEZObjectProxy, bluez_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, - G_IMPLEMENT_INTERFACE (BLUEZ_TYPE_OBJECT, bluez_object_proxy__bluez_object_iface_init) - G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, bluez_object_proxy__g_dbus_object_iface_init)); - -static void -bluez_object_proxy_init (BLUEZObjectProxy *object G_GNUC_UNUSED) -{ -} - -static void -bluez_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 -bluez_object_proxy_get_property (GObject *gobject, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - BLUEZObjectProxy *object = BLUEZ_OBJECT_PROXY (gobject); - GDBusInterface *interface; - - switch (prop_id) - { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -bluez_object_proxy_class_init (BLUEZObjectProxyClass *klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->set_property = bluez_object_proxy_set_property; - gobject_class->get_property = bluez_object_proxy_get_property; - -} - -/** - * bluez_object_proxy_new: - * @connection: A #GDBusConnection. - * @object_path: An object path. - * - * Creates a new proxy object. - * - * Returns: (transfer full): The proxy object. - */ -BLUEZObjectProxy * -bluez_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 BLUEZ_OBJECT_PROXY (g_object_new (BLUEZ_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); -} - -/** - * BLUEZObjectSkeleton: - * - * The #BLUEZObjectSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * BLUEZObjectSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #BLUEZObjectSkeleton. - */ - -static void -bluez_object_skeleton__bluez_object_iface_init (BLUEZObjectIface *iface G_GNUC_UNUSED) -{ -} - - -static void -bluez_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) -{ - iface->interface_added = bluez_object_notify; - iface->interface_removed = bluez_object_notify; -} - -G_DEFINE_TYPE_WITH_CODE (BLUEZObjectSkeleton, bluez_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, - G_IMPLEMENT_INTERFACE (BLUEZ_TYPE_OBJECT, bluez_object_skeleton__bluez_object_iface_init) - G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, bluez_object_skeleton__g_dbus_object_iface_init)); - -static void -bluez_object_skeleton_init (BLUEZObjectSkeleton *object G_GNUC_UNUSED) -{ -} - -static void -bluez_object_skeleton_set_property (GObject *gobject, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - BLUEZObjectSkeleton *object = BLUEZ_OBJECT_SKELETON (gobject); - GDBusInterfaceSkeleton *interface; - - switch (prop_id) - { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -bluez_object_skeleton_get_property (GObject *gobject, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - BLUEZObjectSkeleton *object = BLUEZ_OBJECT_SKELETON (gobject); - GDBusInterface *interface; - - switch (prop_id) - { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -bluez_object_skeleton_class_init (BLUEZObjectSkeletonClass *klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->set_property = bluez_object_skeleton_set_property; - gobject_class->get_property = bluez_object_skeleton_get_property; - -} - -/** - * bluez_object_skeleton_new: - * @object_path: An object path. - * - * Creates a new skeleton object. - * - * Returns: (transfer full): The skeleton object. - */ -BLUEZObjectSkeleton * -bluez_object_skeleton_new (const gchar *object_path) -{ - g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); - return BLUEZ_OBJECT_SKELETON (g_object_new (BLUEZ_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); -} - - -/* ------------------------------------------------------------------------ - * Code for ObjectManager client - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:BLUEZObjectManagerClient - * @title: BLUEZObjectManagerClient - * @short_description: Generated GDBusObjectManagerClient type - * - * This section contains a #GDBusObjectManagerClient that uses bluez_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. - */ - -/** - * BLUEZObjectManagerClient: - * - * The #BLUEZObjectManagerClient structure contains only private data and should only be accessed using the provided API. - */ - -/** - * BLUEZObjectManagerClientClass: - * @parent_class: The parent class. - * - * Class structure for #BLUEZObjectManagerClient. - */ - -G_DEFINE_TYPE (BLUEZObjectManagerClient, bluez_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT); - -static void -bluez_object_manager_client_init (BLUEZObjectManagerClient *manager G_GNUC_UNUSED) -{ -} - -static void -bluez_object_manager_client_class_init (BLUEZObjectManagerClientClass *klass G_GNUC_UNUSED) -{ -} - -/** - * bluez_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 #BLUEZObjectProxy. - */ -GType -bluez_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 BLUEZ_TYPE_OBJECT_PROXY; - if (g_once_init_enter (&once_init_value)) - { - lookup_hash = g_hash_table_new (g_str_hash, g_str_equal); - 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; -} - -/** - * bluez_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 bluez_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 bluez_object_manager_client_new_finish() to get the result of the operation. - * - * See bluez_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. - */ -void -bluez_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 (BLUEZ_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", bluez_object_manager_client_get_proxy_type, NULL); -} - -/** - * bluez_object_manager_client_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to bluez_object_manager_client_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with bluez_object_manager_client_new(). - * - * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -bluez_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; -} - -/** - * bluez_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 bluez_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 bluez_object_manager_client_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -bluez_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 (BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", bluez_object_manager_client_get_proxy_type, NULL); - if (ret != NULL) - return G_DBUS_OBJECT_MANAGER (ret); - else - return NULL; -} - - -/** - * bluez_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 bluez_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 bluez_object_manager_client_new_for_bus_finish() to get the result of the operation. - * - * See bluez_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -bluez_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 (BLUEZ_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", bluez_object_manager_client_get_proxy_type, NULL); -} - -/** - * bluez_object_manager_client_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to bluez_object_manager_client_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with bluez_object_manager_client_new_for_bus(). - * - * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -bluez_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; -} - -/** - * bluez_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 bluez_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection. - * - * The calling thread is blocked until a reply is received. - * - * See bluez_object_manager_client_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type BLUEZObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -bluez_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 (BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", bluez_object_manager_client_get_proxy_type, NULL); - if (ret != NULL) - return G_DBUS_OBJECT_MANAGER (ret); - else - return NULL; -} - - diff --git a/lib_bluez.h b/lib_bluez.h deleted file mode 100644 index 1408bb2..0000000 --- a/lib_bluez.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * 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. - */ - -#ifndef __LIB_BLUEZ_H__ -#define __LIB_BLUEZ_H__ - -#include - -G_BEGIN_DECLS - - -/* ---- */ - -#define BLUEZ_TYPE_OBJECT (bluez_object_get_type ()) -#define BLUEZ_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT, BLUEZObject)) -#define BLUEZ_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT)) -#define BLUEZ_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), BLUEZ_TYPE_OBJECT, BLUEZObject)) - -struct _BLUEZObject; -typedef struct _BLUEZObject BLUEZObject; -typedef struct _BLUEZObjectIface BLUEZObjectIface; - -struct _BLUEZObjectIface -{ - GTypeInterface parent_iface; -}; - -GType bluez_object_get_type (void) G_GNUC_CONST; - - -#define BLUEZ_TYPE_OBJECT_PROXY (bluez_object_proxy_get_type ()) -#define BLUEZ_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxy)) -#define BLUEZ_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxyClass)) -#define BLUEZ_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_PROXY, BLUEZObjectProxyClass)) -#define BLUEZ_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_PROXY)) -#define BLUEZ_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_PROXY)) - -typedef struct _BLUEZObjectProxy BLUEZObjectProxy; -typedef struct _BLUEZObjectProxyClass BLUEZObjectProxyClass; -typedef struct _BLUEZObjectProxyPrivate BLUEZObjectProxyPrivate; - -struct _BLUEZObjectProxy -{ - /*< private >*/ - GDBusObjectProxy parent_instance; - BLUEZObjectProxyPrivate *priv; -}; - -struct _BLUEZObjectProxyClass -{ - GDBusObjectProxyClass parent_class; -}; - -GType bluez_object_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectProxy, g_object_unref) -#endif - -BLUEZObjectProxy *bluez_object_proxy_new (GDBusConnection *connection, const gchar *object_path); - -#define BLUEZ_TYPE_OBJECT_SKELETON (bluez_object_skeleton_get_type ()) -#define BLUEZ_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeleton)) -#define BLUEZ_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeletonClass)) -#define BLUEZ_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_SKELETON, BLUEZObjectSkeletonClass)) -#define BLUEZ_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_SKELETON)) -#define BLUEZ_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_SKELETON)) - -typedef struct _BLUEZObjectSkeleton BLUEZObjectSkeleton; -typedef struct _BLUEZObjectSkeletonClass BLUEZObjectSkeletonClass; -typedef struct _BLUEZObjectSkeletonPrivate BLUEZObjectSkeletonPrivate; - -struct _BLUEZObjectSkeleton -{ - /*< private >*/ - GDBusObjectSkeleton parent_instance; - BLUEZObjectSkeletonPrivate *priv; -}; - -struct _BLUEZObjectSkeletonClass -{ - GDBusObjectSkeletonClass parent_class; -}; - -GType bluez_object_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectSkeleton, g_object_unref) -#endif - -BLUEZObjectSkeleton *bluez_object_skeleton_new (const gchar *object_path); - -/* ---- */ - -#define BLUEZ_TYPE_OBJECT_MANAGER_CLIENT (bluez_object_manager_client_get_type ()) -#define BLUEZ_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClient)) -#define BLUEZ_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClientClass)) -#define BLUEZ_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT, BLUEZObjectManagerClientClass)) -#define BLUEZ_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT)) -#define BLUEZ_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), BLUEZ_TYPE_OBJECT_MANAGER_CLIENT)) - -typedef struct _BLUEZObjectManagerClient BLUEZObjectManagerClient; -typedef struct _BLUEZObjectManagerClientClass BLUEZObjectManagerClientClass; -typedef struct _BLUEZObjectManagerClientPrivate BLUEZObjectManagerClientPrivate; - -struct _BLUEZObjectManagerClient -{ - /*< private >*/ - GDBusObjectManagerClient parent_instance; - BLUEZObjectManagerClientPrivate *priv; -}; - -struct _BLUEZObjectManagerClientClass -{ - GDBusObjectManagerClientClass parent_class; -}; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (BLUEZObjectManagerClient, g_object_unref) -#endif - -GType bluez_object_manager_client_get_type (void) G_GNUC_CONST; - -GType bluez_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); - -void bluez_object_manager_client_new ( - GDBusConnection *connection, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -GDBusObjectManager *bluez_object_manager_client_new_finish ( - GAsyncResult *res, - GError **error); -GDBusObjectManager *bluez_object_manager_client_new_sync ( - GDBusConnection *connection, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void bluez_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); -GDBusObjectManager *bluez_object_manager_client_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -GDBusObjectManager *bluez_object_manager_client_new_for_bus_sync ( - GBusType bus_type, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -G_END_DECLS - -#endif /* __LIB_BLUEZ_H__ */ diff --git a/lib_ofono.c b/lib_ofono.c deleted file mode 100644 index 05ce89b..0000000 --- a/lib_ofono.c +++ /dev/null @@ -1,5615 +0,0 @@ -/* - * 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.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:OFONOOrgFreedesktopDBusIntrospectable - * @title: OFONOOrgFreedesktopDBusIntrospectable - * @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_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml = -{ - { - -1, - (gchar *) "xml", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers[] = -{ - &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_xml, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_freedesktop_dbus_introspectable_method_info_introspect = -{ - { - -1, - (gchar *) "Introspect", - NULL, - (GDBusArgInfo **) &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect_OUT_ARG_pointers, - NULL - }, - "handle-introspect", - FALSE -}; - -static const _ExtendedGDBusMethodInfo * const _ofono_org_freedesktop_dbus_introspectable_method_info_pointers[] = -{ - &_ofono_org_freedesktop_dbus_introspectable_method_info_introspect, - NULL -}; - -static const _ExtendedGDBusInterfaceInfo _ofono_org_freedesktop_dbus_introspectable_interface_info = -{ - { - -1, - (gchar *) "org.freedesktop.DBus.Introspectable", - (GDBusMethodInfo **) &_ofono_org_freedesktop_dbus_introspectable_method_info_pointers, - NULL, - NULL, - NULL - }, - "org-freedesktop-dbus-introspectable", -}; - - -/** - * ofono_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_org_freedesktop_dbus_introspectable_interface_info (void) -{ - return (GDBusInterfaceInfo *) &_ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct; -} - -/** - * ofono_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 #OFONOOrgFreedesktopDBusIntrospectable interface for a concrete class. - * The properties are overridden in the order they are defined. - * - * Returns: The last property id. - */ -guint -ofono_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin) -{ - return property_id_begin - 1; -} - - - -/** - * OFONOOrgFreedesktopDBusIntrospectable: - * - * Abstract interface type for the D-Bus interface org.freedesktop.DBus.Introspectable. - */ - -/** - * OFONOOrgFreedesktopDBusIntrospectableIface: - * @parent_iface: The parent interface. - * @handle_introspect: Handler for the #OFONOOrgFreedesktopDBusIntrospectable::handle-introspect signal. - * - * Virtual table for the D-Bus interface org.freedesktop.DBus.Introspectable. - */ - -typedef OFONOOrgFreedesktopDBusIntrospectableIface OFONOOrgFreedesktopDBusIntrospectableInterface; -G_DEFINE_INTERFACE (OFONOOrgFreedesktopDBusIntrospectable, ofono_org_freedesktop_dbus_introspectable, G_TYPE_OBJECT); - -static void -ofono_org_freedesktop_dbus_introspectable_default_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) -{ - /* GObject signals for incoming D-Bus method calls: */ - /** - * OFONOOrgFreedesktopDBusIntrospectable::handle-introspect: - * @object: A #OFONOOrgFreedesktopDBusIntrospectable. - * @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_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 (OFONOOrgFreedesktopDBusIntrospectableIface, handle_introspect), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - -} - -/** - * ofono_org_freedesktop_dbus_introspectable_call_introspect: - * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. - * @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_org_freedesktop_dbus_introspectable_call_introspect_finish() to get the result of the operation. - * - * See ofono_org_freedesktop_dbus_introspectable_call_introspect_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_freedesktop_dbus_introspectable_call_introspect ( - OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_call_introspect_finish: - * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. - * @out_xml: (out): Return location for return parameter or %NULL to ignore. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_call_introspect(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_call_introspect(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_freedesktop_dbus_introspectable_call_introspect_finish ( - OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_call_introspect_sync: - * @proxy: A #OFONOOrgFreedesktopDBusIntrospectableProxy. - * @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_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_org_freedesktop_dbus_introspectable_call_introspect_sync ( - OFONOOrgFreedesktopDBusIntrospectable *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_org_freedesktop_dbus_introspectable_complete_introspect: - * @object: A #OFONOOrgFreedesktopDBusIntrospectable. - * @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_org_freedesktop_dbus_introspectable_complete_introspect ( - OFONOOrgFreedesktopDBusIntrospectable *object, - GDBusMethodInvocation *invocation, - const gchar *xml) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("(s)", - xml)); -} - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgFreedesktopDBusIntrospectableProxy: - * - * The #OFONOOrgFreedesktopDBusIntrospectableProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgFreedesktopDBusIntrospectableProxyClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgFreedesktopDBusIntrospectableProxy. - */ - -struct _OFONOOrgFreedesktopDBusIntrospectableProxyPrivate -{ - GData *qdata; -}; - -static void ofono_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface); - -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableProxy, ofono_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, - G_ADD_PRIVATE (OFONOOrgFreedesktopDBusIntrospectableProxy) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_proxy_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableProxy, ofono_org_freedesktop_dbus_introspectable_proxy, G_TYPE_DBUS_PROXY, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_proxy_iface_init)); - -#endif -static void -ofono_org_freedesktop_dbus_introspectable_proxy_finalize (GObject *object) -{ - OFONOOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (object); - g_datalist_clear (&proxy->priv->qdata); - G_OBJECT_CLASS (ofono_org_freedesktop_dbus_introspectable_proxy_parent_class)->finalize (object); -} - -static void -ofono_org_freedesktop_dbus_introspectable_proxy_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_freedesktop_dbus_introspectable_proxy_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_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_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_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_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_org_freedesktop_dbus_introspectable_proxy_g_properties_changed (GDBusProxy *_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties) -{ - OFONOOrgFreedesktopDBusIntrospectableProxy *proxy = OFONO_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_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_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_org_freedesktop_dbus_introspectable_proxy_init (OFONOOrgFreedesktopDBusIntrospectableProxy *proxy) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - proxy->priv = ofono_org_freedesktop_dbus_introspectable_proxy_get_instance_private (proxy); -#else - proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyPrivate); -#endif - - g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_freedesktop_dbus_introspectable_interface_info ()); -} - -static void -ofono_org_freedesktop_dbus_introspectable_proxy_class_init (OFONOOrgFreedesktopDBusIntrospectableProxyClass *klass) -{ - GObjectClass *gobject_class; - GDBusProxyClass *proxy_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_freedesktop_dbus_introspectable_proxy_finalize; - gobject_class->get_property = ofono_org_freedesktop_dbus_introspectable_proxy_get_property; - gobject_class->set_property = ofono_org_freedesktop_dbus_introspectable_proxy_set_property; - - proxy_class = G_DBUS_PROXY_CLASS (klass); - proxy_class->g_signal = ofono_org_freedesktop_dbus_introspectable_proxy_g_signal; - proxy_class->g_properties_changed = ofono_org_freedesktop_dbus_introspectable_proxy_g_properties_changed; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgFreedesktopDBusIntrospectableProxyPrivate)); -#endif -} - -static void -ofono_org_freedesktop_dbus_introspectable_proxy_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) -{ -} - -/** - * ofono_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_org_freedesktop_dbus_introspectable_proxy_new_finish() to get the result of the operation. - * - * See ofono_org_freedesktop_dbus_introspectable_proxy_new_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_proxy_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_proxy_new(). - * - * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgFreedesktopDBusIntrospectable * -ofono_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); - else - return NULL; -} - -/** - * ofono_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_org_freedesktop_dbus_introspectable_proxy_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgFreedesktopDBusIntrospectable * -ofono_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_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); - else - return NULL; -} - - -/** - * ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish() to get the result of the operation. - * - * See ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus(). - * - * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgFreedesktopDBusIntrospectable * -ofono_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); - else - return NULL; -} - -/** - * ofono_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_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_org_freedesktop_dbus_introspectable_proxy_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgFreedesktopDBusIntrospectable * -ofono_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_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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); - else - return NULL; -} - - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgFreedesktopDBusIntrospectableSkeleton: - * - * The #OFONOOrgFreedesktopDBusIntrospectableSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgFreedesktopDBusIntrospectableSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgFreedesktopDBusIntrospectableSkeleton. - */ - -struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate -{ - GValue *properties; - GList *changed_properties; - GSource *changed_properties_idle_source; - GMainContext *context; - GMutex lock; -}; - -static void -_ofono_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) -{ - OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_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_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) -{ - OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_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) -{ - OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_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_org_freedesktop_dbus_introspectable_skeleton_vtable = -{ - _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_method_call, - _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_get_property, - _ofono_org_freedesktop_dbus_introspectable_skeleton_handle_set_property, - {NULL} -}; - -static GDBusInterfaceInfo * -ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return ofono_org_freedesktop_dbus_introspectable_interface_info (); -} - -static GDBusInterfaceVTable * -ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return (GDBusInterfaceVTable *) &_ofono_org_freedesktop_dbus_introspectable_skeleton_vtable; -} - -static GVariant * -ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) -{ - OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (_skeleton); - - GVariantBuilder builder; - guint n; - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - if (_ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties == NULL) - goto out; - for (n = 0; _ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n] != NULL; n++) - { - GDBusPropertyInfo *info = _ofono_org_freedesktop_dbus_introspectable_interface_info.parent_struct.properties[n]; - if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) - { - GVariant *value; - value = _ofono_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_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) -{ -} - -static void ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface); -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableSkeleton, ofono_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_ADD_PRIVATE (OFONOOrgFreedesktopDBusIntrospectableSkeleton) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgFreedesktopDBusIntrospectableSkeleton, ofono_org_freedesktop_dbus_introspectable_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init)); - -#endif -static void -ofono_org_freedesktop_dbus_introspectable_skeleton_finalize (GObject *object) -{ - OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton = OFONO_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_org_freedesktop_dbus_introspectable_skeleton_parent_class)->finalize (object); -} - -static void -ofono_org_freedesktop_dbus_introspectable_skeleton_init (OFONOOrgFreedesktopDBusIntrospectableSkeleton *skeleton) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - skeleton->priv = ofono_org_freedesktop_dbus_introspectable_skeleton_get_instance_private (skeleton); -#else - skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate); -#endif - - g_mutex_init (&skeleton->priv->lock); - skeleton->priv->context = g_main_context_ref_thread_default (); -} - -static void -ofono_org_freedesktop_dbus_introspectable_skeleton_class_init (OFONOOrgFreedesktopDBusIntrospectableSkeletonClass *klass) -{ - GObjectClass *gobject_class; - GDBusInterfaceSkeletonClass *skeleton_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_freedesktop_dbus_introspectable_skeleton_finalize; - - skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); - skeleton_class->get_info = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_info; - skeleton_class->get_properties = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_get_properties; - skeleton_class->flush = ofono_org_freedesktop_dbus_introspectable_skeleton_dbus_interface_flush; - skeleton_class->get_vtable = ofono_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 (OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate)); -#endif -} - -static void -ofono_org_freedesktop_dbus_introspectable_skeleton_iface_init (OFONOOrgFreedesktopDBusIntrospectableIface *iface) -{ -} - -/** - * ofono_org_freedesktop_dbus_introspectable_skeleton_new: - * - * Creates a skeleton object for the D-Bus interface org.freedesktop.DBus.Introspectable. - * - * Returns: (transfer full) (type OFONOOrgFreedesktopDBusIntrospectableSkeleton): The skeleton object. - */ -OFONOOrgFreedesktopDBusIntrospectable * -ofono_org_freedesktop_dbus_introspectable_skeleton_new (void) -{ - return OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (g_object_new (OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, NULL)); -} - -/* ------------------------------------------------------------------------ - * Code for interface org.ofono.Manager - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:OFONOOrgOfonoManager - * @title: OFONOOrgOfonoManager - * @short_description: Generated C code for the org.ofono.Manager D-Bus interface - * - * This section contains code for working with the org.ofono.Manager D-Bus interface in C. - */ - -/* ---- Introspection data for org.ofono.Manager ---- */ - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_modems = -{ - { - -1, - (gchar *) "modems", - (gchar *) "a(oa{sv})", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_pointers[] = -{ - &_ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_modems, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_manager_method_info_get_modems = -{ - { - -1, - (gchar *) "GetModems", - NULL, - (GDBusArgInfo **) &_ofono_org_ofono_manager_method_info_get_modems_OUT_ARG_pointers, - NULL - }, - "handle-get-modems", - FALSE -}; - -static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_manager_method_info_pointers[] = -{ - &_ofono_org_ofono_manager_method_info_get_modems, - NULL -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_added_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_added_ARG_properties = -{ - { - -1, - (gchar *) "properties", - (gchar *) "a{sv}", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_signal_info_modem_added_ARG_pointers[] = -{ - &_ofono_org_ofono_manager_signal_info_modem_added_ARG_path, - &_ofono_org_ofono_manager_signal_info_modem_added_ARG_properties, - NULL -}; - -static const _ExtendedGDBusSignalInfo _ofono_org_ofono_manager_signal_info_modem_added = -{ - { - -1, - (gchar *) "ModemAdded", - (GDBusArgInfo **) &_ofono_org_ofono_manager_signal_info_modem_added_ARG_pointers, - NULL - }, - "modem-added" -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_manager_signal_info_modem_removed_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_manager_signal_info_modem_removed_ARG_pointers[] = -{ - &_ofono_org_ofono_manager_signal_info_modem_removed_ARG_path, - NULL -}; - -static const _ExtendedGDBusSignalInfo _ofono_org_ofono_manager_signal_info_modem_removed = -{ - { - -1, - (gchar *) "ModemRemoved", - (GDBusArgInfo **) &_ofono_org_ofono_manager_signal_info_modem_removed_ARG_pointers, - NULL - }, - "modem-removed" -}; - -static const _ExtendedGDBusSignalInfo * const _ofono_org_ofono_manager_signal_info_pointers[] = -{ - &_ofono_org_ofono_manager_signal_info_modem_added, - &_ofono_org_ofono_manager_signal_info_modem_removed, - NULL -}; - -static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_manager_interface_info = -{ - { - -1, - (gchar *) "org.ofono.Manager", - (GDBusMethodInfo **) &_ofono_org_ofono_manager_method_info_pointers, - (GDBusSignalInfo **) &_ofono_org_ofono_manager_signal_info_pointers, - NULL, - NULL - }, - "org-ofono-manager", -}; - - -/** - * ofono_org_ofono_manager_interface_info: - * - * Gets a machine-readable description of the org.ofono.Manager D-Bus interface. - * - * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. - */ -GDBusInterfaceInfo * -ofono_org_ofono_manager_interface_info (void) -{ - return (GDBusInterfaceInfo *) &_ofono_org_ofono_manager_interface_info.parent_struct; -} - -/** - * ofono_org_ofono_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 #OFONOOrgOfonoManager interface for a concrete class. - * The properties are overridden in the order they are defined. - * - * Returns: The last property id. - */ -guint -ofono_org_ofono_manager_override_properties (GObjectClass *klass, guint property_id_begin) -{ - return property_id_begin - 1; -} - - - -/** - * OFONOOrgOfonoManager: - * - * Abstract interface type for the D-Bus interface org.ofono.Manager. - */ - -/** - * OFONOOrgOfonoManagerIface: - * @parent_iface: The parent interface. - * @handle_get_modems: Handler for the #OFONOOrgOfonoManager::handle-get-modems signal. - * @modem_added: Handler for the #OFONOOrgOfonoManager::modem-added signal. - * @modem_removed: Handler for the #OFONOOrgOfonoManager::modem-removed signal. - * - * Virtual table for the D-Bus interface org.ofono.Manager. - */ - -typedef OFONOOrgOfonoManagerIface OFONOOrgOfonoManagerInterface; -G_DEFINE_INTERFACE (OFONOOrgOfonoManager, ofono_org_ofono_manager, G_TYPE_OBJECT); - -static void -ofono_org_ofono_manager_default_init (OFONOOrgOfonoManagerIface *iface) -{ - /* GObject signals for incoming D-Bus method calls: */ - /** - * OFONOOrgOfonoManager::handle-get-modems: - * @object: A #OFONOOrgOfonoManager. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the GetModems() 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_org_ofono_manager_complete_get_modems() 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-modems", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, handle_get_modems), - 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: */ - /** - * OFONOOrgOfonoManager::modem-added: - * @object: A #OFONOOrgOfonoManager. - * @arg_path: Argument. - * @arg_properties: Argument. - * - * On the client-side, this signal is emitted whenever the D-Bus signal "ModemAdded" 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 ("modem-added", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, modem_added), - NULL, - NULL, - g_cclosure_marshal_generic, - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_VARIANT); - - /** - * OFONOOrgOfonoManager::modem-removed: - * @object: A #OFONOOrgOfonoManager. - * @arg_path: Argument. - * - * On the client-side, this signal is emitted whenever the D-Bus signal "ModemRemoved" 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 ("modem-removed", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoManagerIface, modem_removed), - NULL, - NULL, - g_cclosure_marshal_generic, - G_TYPE_NONE, - 1, G_TYPE_STRING); - -} - -/** - * ofono_org_ofono_manager_emit_modem_added: - * @object: A #OFONOOrgOfonoManager. - * @arg_path: Argument to pass with the signal. - * @arg_properties: Argument to pass with the signal. - * - * Emits the "ModemAdded" D-Bus signal. - */ -void -ofono_org_ofono_manager_emit_modem_added ( - OFONOOrgOfonoManager *object, - const gchar *arg_path, - GVariant *arg_properties) -{ - g_signal_emit_by_name (object, "modem-added", arg_path, arg_properties); -} - -/** - * ofono_org_ofono_manager_emit_modem_removed: - * @object: A #OFONOOrgOfonoManager. - * @arg_path: Argument to pass with the signal. - * - * Emits the "ModemRemoved" D-Bus signal. - */ -void -ofono_org_ofono_manager_emit_modem_removed ( - OFONOOrgOfonoManager *object, - const gchar *arg_path) -{ - g_signal_emit_by_name (object, "modem-removed", arg_path); -} - -/** - * ofono_org_ofono_manager_call_get_modems: - * @proxy: A #OFONOOrgOfonoManagerProxy. - * @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 GetModems() 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_org_ofono_manager_call_get_modems_finish() to get the result of the operation. - * - * See ofono_org_ofono_manager_call_get_modems_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_manager_call_get_modems ( - OFONOOrgOfonoManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "GetModems", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_manager_call_get_modems_finish: - * @proxy: A #OFONOOrgOfonoManagerProxy. - * @out_modems: (out): Return location for return parameter or %NULL to ignore. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_call_get_modems(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_manager_call_get_modems(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_manager_call_get_modems_finish ( - OFONOOrgOfonoManager *proxy, - GVariant **out_modems, - 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_modems); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * ofono_org_ofono_manager_call_get_modems_sync: - * @proxy: A #OFONOOrgOfonoManagerProxy. - * @out_modems: (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 GetModems() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_manager_call_get_modems() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_manager_call_get_modems_sync ( - OFONOOrgOfonoManager *proxy, - GVariant **out_modems, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "GetModems", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - error); - if (_ret == NULL) - goto _out; - g_variant_get (_ret, - "(@a(oa{sv}))", - out_modems); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * ofono_org_ofono_manager_complete_get_modems: - * @object: A #OFONOOrgOfonoManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * @modems: Parameter to return. - * - * Helper function used in service implementations to finish handling invocations of the GetModems() 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_org_ofono_manager_complete_get_modems ( - OFONOOrgOfonoManager *object, - GDBusMethodInvocation *invocation, - GVariant *modems) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("(@a(oa{sv}))", - modems)); -} - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoManagerProxy: - * - * The #OFONOOrgOfonoManagerProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoManagerProxyClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoManagerProxy. - */ - -struct _OFONOOrgOfonoManagerProxyPrivate -{ - GData *qdata; -}; - -static void ofono_org_ofono_manager_proxy_iface_init (OFONOOrgOfonoManagerIface *iface); - -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerProxy, ofono_org_ofono_manager_proxy, G_TYPE_DBUS_PROXY, - G_ADD_PRIVATE (OFONOOrgOfonoManagerProxy) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_proxy_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerProxy, ofono_org_ofono_manager_proxy, G_TYPE_DBUS_PROXY, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_proxy_iface_init)); - -#endif -static void -ofono_org_ofono_manager_proxy_finalize (GObject *object) -{ - OFONOOrgOfonoManagerProxy *proxy = OFONO_ORG_OFONO_MANAGER_PROXY (object); - g_datalist_clear (&proxy->priv->qdata); - G_OBJECT_CLASS (ofono_org_ofono_manager_proxy_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_manager_proxy_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_manager_proxy_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_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_org_ofono_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_TYPE_ORG_OFONO_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_TYPE_ORG_OFONO_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_org_ofono_manager_proxy_g_properties_changed (GDBusProxy *_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties) -{ - OFONOOrgOfonoManagerProxy *proxy = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_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_org_ofono_manager_proxy_init (OFONOOrgOfonoManagerProxy *proxy) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - proxy->priv = ofono_org_ofono_manager_proxy_get_instance_private (proxy); -#else - proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyPrivate); -#endif - - g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_manager_interface_info ()); -} - -static void -ofono_org_ofono_manager_proxy_class_init (OFONOOrgOfonoManagerProxyClass *klass) -{ - GObjectClass *gobject_class; - GDBusProxyClass *proxy_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_manager_proxy_finalize; - gobject_class->get_property = ofono_org_ofono_manager_proxy_get_property; - gobject_class->set_property = ofono_org_ofono_manager_proxy_set_property; - - proxy_class = G_DBUS_PROXY_CLASS (klass); - proxy_class->g_signal = ofono_org_ofono_manager_proxy_g_signal; - proxy_class->g_properties_changed = ofono_org_ofono_manager_proxy_g_properties_changed; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoManagerProxyPrivate)); -#endif -} - -static void -ofono_org_ofono_manager_proxy_iface_init (OFONOOrgOfonoManagerIface *iface) -{ -} - -/** - * ofono_org_ofono_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.Manager. 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_org_ofono_manager_proxy_new_finish() to get the result of the operation. - * - * See ofono_org_ofono_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); -} - -/** - * ofono_org_ofono_manager_proxy_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_proxy_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_manager_proxy_new(). - * - * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoManager * -ofono_org_ofono_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_ORG_OFONO_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_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.Manager. See g_dbus_proxy_new_sync() for more details. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_manager_proxy_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoManager * -ofono_org_ofono_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_TYPE_ORG_OFONO_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.Manager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_MANAGER (ret); - else - return NULL; -} - - -/** - * ofono_org_ofono_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_org_ofono_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_org_ofono_manager_proxy_new_for_bus_finish() to get the result of the operation. - * - * See ofono_org_ofono_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); -} - -/** - * ofono_org_ofono_manager_proxy_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_manager_proxy_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_manager_proxy_new_for_bus(). - * - * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoManager * -ofono_org_ofono_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_ORG_OFONO_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_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_org_ofono_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_manager_proxy_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoManager * -ofono_org_ofono_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_TYPE_ORG_OFONO_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.Manager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_MANAGER (ret); - else - return NULL; -} - - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoManagerSkeleton: - * - * The #OFONOOrgOfonoManagerSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoManagerSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoManagerSkeleton. - */ - -struct _OFONOOrgOfonoManagerSkeletonPrivate -{ - GValue *properties; - GList *changed_properties; - GSource *changed_properties_idle_source; - GMainContext *context; - GMutex lock; -}; - -static void -_ofono_org_ofono_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) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_TYPE_ORG_OFONO_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_TYPE_ORG_OFONO_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_org_ofono_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) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_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) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_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_org_ofono_manager_skeleton_vtable = -{ - _ofono_org_ofono_manager_skeleton_handle_method_call, - _ofono_org_ofono_manager_skeleton_handle_get_property, - _ofono_org_ofono_manager_skeleton_handle_set_property, - {NULL} -}; - -static GDBusInterfaceInfo * -ofono_org_ofono_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return ofono_org_ofono_manager_interface_info (); -} - -static GDBusInterfaceVTable * -ofono_org_ofono_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return (GDBusInterfaceVTable *) &_ofono_org_ofono_manager_skeleton_vtable; -} - -static GVariant * -ofono_org_ofono_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_MANAGER_SKELETON (_skeleton); - - GVariantBuilder builder; - guint n; - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - if (_ofono_org_ofono_manager_interface_info.parent_struct.properties == NULL) - goto out; - for (n = 0; _ofono_org_ofono_manager_interface_info.parent_struct.properties[n] != NULL; n++) - { - GDBusPropertyInfo *info = _ofono_org_ofono_manager_interface_info.parent_struct.properties[n]; - if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) - { - GVariant *value; - value = _ofono_org_ofono_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.Manager", 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_org_ofono_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) -{ -} - -static void -_ofono_org_ofono_manager_on_signal_modem_added ( - OFONOOrgOfonoManager *object, - const gchar *arg_path, - GVariant *arg_properties) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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.Manager", "ModemAdded", - signal_variant, NULL); - } - g_variant_unref (signal_variant); - g_list_free_full (connections, g_object_unref); -} - -static void -_ofono_org_ofono_manager_on_signal_modem_removed ( - OFONOOrgOfonoManager *object, - const gchar *arg_path) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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.Manager", "ModemRemoved", - signal_variant, NULL); - } - g_variant_unref (signal_variant); - g_list_free_full (connections, g_object_unref); -} - -static void ofono_org_ofono_manager_skeleton_iface_init (OFONOOrgOfonoManagerIface *iface); -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerSkeleton, ofono_org_ofono_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_ADD_PRIVATE (OFONOOrgOfonoManagerSkeleton) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_skeleton_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoManagerSkeleton, ofono_org_ofono_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_MANAGER, ofono_org_ofono_manager_skeleton_iface_init)); - -#endif -static void -ofono_org_ofono_manager_skeleton_finalize (GObject *object) -{ - OFONOOrgOfonoManagerSkeleton *skeleton = OFONO_ORG_OFONO_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_org_ofono_manager_skeleton_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_manager_skeleton_init (OFONOOrgOfonoManagerSkeleton *skeleton) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - skeleton->priv = ofono_org_ofono_manager_skeleton_get_instance_private (skeleton); -#else - skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonPrivate); -#endif - - g_mutex_init (&skeleton->priv->lock); - skeleton->priv->context = g_main_context_ref_thread_default (); -} - -static void -ofono_org_ofono_manager_skeleton_class_init (OFONOOrgOfonoManagerSkeletonClass *klass) -{ - GObjectClass *gobject_class; - GDBusInterfaceSkeletonClass *skeleton_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_manager_skeleton_finalize; - - skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); - skeleton_class->get_info = ofono_org_ofono_manager_skeleton_dbus_interface_get_info; - skeleton_class->get_properties = ofono_org_ofono_manager_skeleton_dbus_interface_get_properties; - skeleton_class->flush = ofono_org_ofono_manager_skeleton_dbus_interface_flush; - skeleton_class->get_vtable = ofono_org_ofono_manager_skeleton_dbus_interface_get_vtable; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoManagerSkeletonPrivate)); -#endif -} - -static void -ofono_org_ofono_manager_skeleton_iface_init (OFONOOrgOfonoManagerIface *iface) -{ - iface->modem_added = _ofono_org_ofono_manager_on_signal_modem_added; - iface->modem_removed = _ofono_org_ofono_manager_on_signal_modem_removed; -} - -/** - * ofono_org_ofono_manager_skeleton_new: - * - * Creates a skeleton object for the D-Bus interface org.ofono.Manager. - * - * Returns: (transfer full) (type OFONOOrgOfonoManagerSkeleton): The skeleton object. - */ -OFONOOrgOfonoManager * -ofono_org_ofono_manager_skeleton_new (void) -{ - return OFONO_ORG_OFONO_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, NULL)); -} - -/* ------------------------------------------------------------------------ - * Code for interface org.ofono.HandsfreeAudioManager - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:OFONOOrgOfonoHandsfreeAudioManager - * @title: OFONOOrgOfonoHandsfreeAudioManager - * @short_description: Generated C code for the org.ofono.HandsfreeAudioManager D-Bus interface - * - * This section contains code for working with the org.ofono.HandsfreeAudioManager D-Bus interface in C. - */ - -/* ---- Introspection data for org.ofono.HandsfreeAudioManager ---- */ - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_cards = -{ - { - -1, - (gchar *) "cards", - (gchar *) "a{oa{sv}}", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_cards, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_get_cards = -{ - { - -1, - (gchar *) "GetCards", - NULL, - (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards_OUT_ARG_pointers, - NULL - }, - "handle-get-cards", - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_codecs = -{ - { - -1, - (gchar *) "codecs", - (gchar *) "ay", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_path, - &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_codecs, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_register = -{ - { - -1, - (gchar *) "Register", - (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_register_IN_ARG_pointers, - NULL, - NULL - }, - "handle-register", - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_path, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_handsfree_audio_manager_method_info_unregister = -{ - { - -1, - (gchar *) "Unregister", - (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister_IN_ARG_pointers, - NULL, - NULL - }, - "handle-unregister", - FALSE -}; - -static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_handsfree_audio_manager_method_info_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_method_info_get_cards, - &_ofono_org_ofono_handsfree_audio_manager_method_info_register, - &_ofono_org_ofono_handsfree_audio_manager_method_info_unregister, - NULL -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_properties = -{ - { - -1, - (gchar *) "properties", - (gchar *) "a{sv}", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_path, - &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_properties, - NULL -}; - -static const _ExtendedGDBusSignalInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_added = -{ - { - -1, - (gchar *) "CardAdded", - (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added_ARG_pointers, - NULL - }, - "card-added" -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_path = -{ - { - -1, - (gchar *) "path", - (gchar *) "o", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_path, - NULL -}; - -static const _ExtendedGDBusSignalInfo _ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed = -{ - { - -1, - (gchar *) "CardRemoved", - (GDBusArgInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed_ARG_pointers, - NULL - }, - "card-removed" -}; - -static const _ExtendedGDBusSignalInfo * const _ofono_org_ofono_handsfree_audio_manager_signal_info_pointers[] = -{ - &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_added, - &_ofono_org_ofono_handsfree_audio_manager_signal_info_card_removed, - NULL -}; - -static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_handsfree_audio_manager_interface_info = -{ - { - -1, - (gchar *) "org.ofono.HandsfreeAudioManager", - (GDBusMethodInfo **) &_ofono_org_ofono_handsfree_audio_manager_method_info_pointers, - (GDBusSignalInfo **) &_ofono_org_ofono_handsfree_audio_manager_signal_info_pointers, - NULL, - NULL - }, - "org-ofono-handsfree-audio-manager", -}; - - -/** - * ofono_org_ofono_handsfree_audio_manager_interface_info: - * - * Gets a machine-readable description of the org.ofono.HandsfreeAudioManager D-Bus interface. - * - * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. - */ -GDBusInterfaceInfo * -ofono_org_ofono_handsfree_audio_manager_interface_info (void) -{ - return (GDBusInterfaceInfo *) &_ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct; -} - -/** - * ofono_org_ofono_handsfree_audio_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 #OFONOOrgOfonoHandsfreeAudioManager interface for a concrete class. - * The properties are overridden in the order they are defined. - * - * Returns: The last property id. - */ -guint -ofono_org_ofono_handsfree_audio_manager_override_properties (GObjectClass *klass, guint property_id_begin) -{ - return property_id_begin - 1; -} - - - -/** - * OFONOOrgOfonoHandsfreeAudioManager: - * - * Abstract interface type for the D-Bus interface org.ofono.HandsfreeAudioManager. - */ - -/** - * OFONOOrgOfonoHandsfreeAudioManagerIface: - * @parent_iface: The parent interface. - * @handle_get_cards: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-get-cards signal. - * @handle_register: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-register signal. - * @handle_unregister: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::handle-unregister signal. - * @card_added: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::card-added signal. - * @card_removed: Handler for the #OFONOOrgOfonoHandsfreeAudioManager::card-removed signal. - * - * Virtual table for the D-Bus interface org.ofono.HandsfreeAudioManager. - */ - -typedef OFONOOrgOfonoHandsfreeAudioManagerIface OFONOOrgOfonoHandsfreeAudioManagerInterface; -G_DEFINE_INTERFACE (OFONOOrgOfonoHandsfreeAudioManager, ofono_org_ofono_handsfree_audio_manager, G_TYPE_OBJECT); - -static void -ofono_org_ofono_handsfree_audio_manager_default_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) -{ - /* GObject signals for incoming D-Bus method calls: */ - /** - * OFONOOrgOfonoHandsfreeAudioManager::handle-get-cards: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the GetCards() 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_org_ofono_handsfree_audio_manager_complete_get_cards() 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-cards", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_get_cards), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - - /** - * OFONOOrgOfonoHandsfreeAudioManager::handle-register: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @invocation: A #GDBusMethodInvocation. - * @arg_path: Argument passed by remote caller. - * @arg_codecs: Argument passed by remote caller. - * - * 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_org_ofono_handsfree_audio_manager_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 (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_register), - 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); - - /** - * OFONOOrgOfonoHandsfreeAudioManager::handle-unregister: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @invocation: A #GDBusMethodInvocation. - * @arg_path: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the Unregister() 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_org_ofono_handsfree_audio_manager_complete_unregister() 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-unregister", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, handle_unregister), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 2, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING); - - /* GObject signals for received D-Bus signals: */ - /** - * OFONOOrgOfonoHandsfreeAudioManager::card-added: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @arg_path: Argument. - * @arg_properties: Argument. - * - * On the client-side, this signal is emitted whenever the D-Bus signal "CardAdded" 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 ("card-added", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, card_added), - NULL, - NULL, - g_cclosure_marshal_generic, - G_TYPE_NONE, - 2, G_TYPE_STRING, G_TYPE_VARIANT); - - /** - * OFONOOrgOfonoHandsfreeAudioManager::card-removed: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @arg_path: Argument. - * - * On the client-side, this signal is emitted whenever the D-Bus signal "CardRemoved" 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 ("card-removed", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoHandsfreeAudioManagerIface, card_removed), - NULL, - NULL, - g_cclosure_marshal_generic, - G_TYPE_NONE, - 1, G_TYPE_STRING); - -} - -/** - * ofono_org_ofono_handsfree_audio_manager_emit_card_added: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @arg_path: Argument to pass with the signal. - * @arg_properties: Argument to pass with the signal. - * - * Emits the "CardAdded" D-Bus signal. - */ -void -ofono_org_ofono_handsfree_audio_manager_emit_card_added ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path, - GVariant *arg_properties) -{ - g_signal_emit_by_name (object, "card-added", arg_path, arg_properties); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_emit_card_removed: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @arg_path: Argument to pass with the signal. - * - * Emits the "CardRemoved" D-Bus signal. - */ -void -ofono_org_ofono_handsfree_audio_manager_emit_card_removed ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path) -{ - g_signal_emit_by_name (object, "card-removed", arg_path); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_get_cards: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @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 GetCards() 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_org_ofono_handsfree_audio_manager_call_get_cards_finish() to get the result of the operation. - * - * See ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_handsfree_audio_manager_call_get_cards ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "GetCards", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @out_cards: (out): Return location for return parameter or %NULL to ignore. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_get_cards(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_get_cards(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GVariant **out_cards, - 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_cards); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @out_cards: (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 GetCards() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_handsfree_audio_manager_call_get_cards() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GVariant **out_cards, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "GetCards", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - error); - if (_ret == NULL) - goto _out; - g_variant_get (_ret, - "(@a{oa{sv}})", - out_cards); - g_variant_unref (_ret); -_out: - return _ret != NULL; -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_register: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @arg_path: Argument to pass with the method invocation. - * @arg_codecs: 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 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_org_ofono_handsfree_audio_manager_call_register_finish() to get the result of the operation. - * - * See ofono_org_ofono_handsfree_audio_manager_call_register_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_handsfree_audio_manager_call_register ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - const gchar *arg_codecs, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Register", - g_variant_new ("(o^ay)", - arg_path, - arg_codecs), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_register_finish: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_register(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_register(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_register_finish ( - OFONOOrgOfonoHandsfreeAudioManager *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_org_ofono_handsfree_audio_manager_call_register_sync: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @arg_path: Argument to pass with the method invocation. - * @arg_codecs: Argument to pass with the method invocation. - * @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_org_ofono_handsfree_audio_manager_call_register() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_register_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - const gchar *arg_codecs, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Register", - g_variant_new ("(o^ay)", - arg_path, - arg_codecs), - 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_org_ofono_handsfree_audio_manager_call_unregister: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @arg_path: 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 Unregister() 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_org_ofono_handsfree_audio_manager_call_unregister_finish() to get the result of the operation. - * - * See ofono_org_ofono_handsfree_audio_manager_call_unregister_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_handsfree_audio_manager_call_unregister ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Unregister", - g_variant_new ("(o)", - arg_path), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_call_unregister_finish: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_call_unregister(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_call_unregister(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_unregister_finish ( - OFONOOrgOfonoHandsfreeAudioManager *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_org_ofono_handsfree_audio_manager_call_unregister_sync: - * @proxy: A #OFONOOrgOfonoHandsfreeAudioManagerProxy. - * @arg_path: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the Unregister() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_handsfree_audio_manager_call_unregister() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_handsfree_audio_manager_call_unregister_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Unregister", - g_variant_new ("(o)", - arg_path), - 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_org_ofono_handsfree_audio_manager_complete_get_cards: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * @cards: Parameter to return. - * - * Helper function used in service implementations to finish handling invocations of the GetCards() 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_org_ofono_handsfree_audio_manager_complete_get_cards ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation, - GVariant *cards) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("(@a{oa{sv}})", - cards)); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_complete_register: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @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_org_ofono_handsfree_audio_manager_complete_register ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_complete_unregister: - * @object: A #OFONOOrgOfonoHandsfreeAudioManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the Unregister() 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_org_ofono_handsfree_audio_manager_complete_unregister ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoHandsfreeAudioManagerProxy: - * - * The #OFONOOrgOfonoHandsfreeAudioManagerProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoHandsfreeAudioManagerProxyClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoHandsfreeAudioManagerProxy. - */ - -struct _OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate -{ - GData *qdata; -}; - -static void ofono_org_ofono_handsfree_audio_manager_proxy_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface); - -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerProxy, ofono_org_ofono_handsfree_audio_manager_proxy, G_TYPE_DBUS_PROXY, - G_ADD_PRIVATE (OFONOOrgOfonoHandsfreeAudioManagerProxy) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_proxy_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerProxy, ofono_org_ofono_handsfree_audio_manager_proxy, G_TYPE_DBUS_PROXY, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_proxy_iface_init)); - -#endif -static void -ofono_org_ofono_handsfree_audio_manager_proxy_finalize (GObject *object) -{ - OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy = OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY (object); - g_datalist_clear (&proxy->priv->qdata); - G_OBJECT_CLASS (ofono_org_ofono_handsfree_audio_manager_proxy_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_handsfree_audio_manager_proxy_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_handsfree_audio_manager_proxy_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_manager_proxy_g_properties_changed (GDBusProxy *_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties) -{ - OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_init (OFONOOrgOfonoHandsfreeAudioManagerProxy *proxy) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - proxy->priv = ofono_org_ofono_handsfree_audio_manager_proxy_get_instance_private (proxy); -#else - proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate); -#endif - - g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_handsfree_audio_manager_interface_info ()); -} - -static void -ofono_org_ofono_handsfree_audio_manager_proxy_class_init (OFONOOrgOfonoHandsfreeAudioManagerProxyClass *klass) -{ - GObjectClass *gobject_class; - GDBusProxyClass *proxy_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_handsfree_audio_manager_proxy_finalize; - gobject_class->get_property = ofono_org_ofono_handsfree_audio_manager_proxy_get_property; - gobject_class->set_property = ofono_org_ofono_handsfree_audio_manager_proxy_set_property; - - proxy_class = G_DBUS_PROXY_CLASS (klass); - proxy_class->g_signal = ofono_org_ofono_handsfree_audio_manager_proxy_g_signal; - proxy_class->g_properties_changed = ofono_org_ofono_handsfree_audio_manager_proxy_g_properties_changed; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate)); -#endif -} - -static void -ofono_org_ofono_handsfree_audio_manager_proxy_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) -{ -} - -/** - * ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager. 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_org_ofono_handsfree_audio_manager_proxy_new_finish() to get the result of the operation. - * - * See ofono_org_ofono_handsfree_audio_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_proxy_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_proxy_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_proxy_new(). - * - * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoHandsfreeAudioManager * -ofono_org_ofono_handsfree_audio_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_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager. See g_dbus_proxy_new_sync() for more details. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_handsfree_audio_manager_proxy_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoHandsfreeAudioManager * -ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.HandsfreeAudioManager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); - else - return NULL; -} - - -/** - * ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish() to get the result of the operation. - * - * See ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); -} - -/** - * ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus(). - * - * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoHandsfreeAudioManager * -ofono_org_ofono_handsfree_audio_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_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoHandsfreeAudioManager * -ofono_org_ofono_handsfree_audio_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); - else - return NULL; -} - - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoHandsfreeAudioManagerSkeleton: - * - * The #OFONOOrgOfonoHandsfreeAudioManagerSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoHandsfreeAudioManagerSkeleton. - */ - -struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate -{ - GValue *properties; - GList *changed_properties; - GSource *changed_properties_idle_source; - GMainContext *context; - GMutex lock; -}; - -static void -_ofono_org_ofono_handsfree_audio_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) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_TYPE_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_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) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_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_org_ofono_handsfree_audio_manager_skeleton_vtable = -{ - _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_method_call, - _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_get_property, - _ofono_org_ofono_handsfree_audio_manager_skeleton_handle_set_property, - {NULL} -}; - -static GDBusInterfaceInfo * -ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return ofono_org_ofono_handsfree_audio_manager_interface_info (); -} - -static GDBusInterfaceVTable * -ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return (GDBusInterfaceVTable *) &_ofono_org_ofono_handsfree_audio_manager_skeleton_vtable; -} - -static GVariant * -ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON (_skeleton); - - GVariantBuilder builder; - guint n; - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - if (_ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties == NULL) - goto out; - for (n = 0; _ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties[n] != NULL; n++) - { - GDBusPropertyInfo *info = _ofono_org_ofono_handsfree_audio_manager_interface_info.parent_struct.properties[n]; - if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) - { - GVariant *value; - value = _ofono_org_ofono_handsfree_audio_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.HandsfreeAudioManager", 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_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) -{ -} - -static void -_ofono_org_ofono_handsfree_audio_manager_on_signal_card_added ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path, - GVariant *arg_properties) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", "CardAdded", - signal_variant, NULL); - } - g_variant_unref (signal_variant); - g_list_free_full (connections, g_object_unref); -} - -static void -_ofono_org_ofono_handsfree_audio_manager_on_signal_card_removed ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager", "CardRemoved", - signal_variant, NULL); - } - g_variant_unref (signal_variant); - g_list_free_full (connections, g_object_unref); -} - -static void ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface); -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, ofono_org_ofono_handsfree_audio_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_ADD_PRIVATE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, ofono_org_ofono_handsfree_audio_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init)); - -#endif -static void -ofono_org_ofono_handsfree_audio_manager_skeleton_finalize (GObject *object) -{ - OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton = OFONO_ORG_OFONO_HANDSFREE_AUDIO_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_org_ofono_handsfree_audio_manager_skeleton_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_handsfree_audio_manager_skeleton_init (OFONOOrgOfonoHandsfreeAudioManagerSkeleton *skeleton) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - skeleton->priv = ofono_org_ofono_handsfree_audio_manager_skeleton_get_instance_private (skeleton); -#else - skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate); -#endif - - g_mutex_init (&skeleton->priv->lock); - skeleton->priv->context = g_main_context_ref_thread_default (); -} - -static void -ofono_org_ofono_handsfree_audio_manager_skeleton_class_init (OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass *klass) -{ - GObjectClass *gobject_class; - GDBusInterfaceSkeletonClass *skeleton_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_handsfree_audio_manager_skeleton_finalize; - - skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); - skeleton_class->get_info = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_info; - skeleton_class->get_properties = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_properties; - skeleton_class->flush = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_flush; - skeleton_class->get_vtable = ofono_org_ofono_handsfree_audio_manager_skeleton_dbus_interface_get_vtable; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate)); -#endif -} - -static void -ofono_org_ofono_handsfree_audio_manager_skeleton_iface_init (OFONOOrgOfonoHandsfreeAudioManagerIface *iface) -{ - iface->card_added = _ofono_org_ofono_handsfree_audio_manager_on_signal_card_added; - iface->card_removed = _ofono_org_ofono_handsfree_audio_manager_on_signal_card_removed; -} - -/** - * ofono_org_ofono_handsfree_audio_manager_skeleton_new: - * - * Creates a skeleton object for the D-Bus interface org.ofono.HandsfreeAudioManager. - * - * Returns: (transfer full) (type OFONOOrgOfonoHandsfreeAudioManagerSkeleton): The skeleton object. - */ -OFONOOrgOfonoHandsfreeAudioManager * -ofono_org_ofono_handsfree_audio_manager_skeleton_new (void) -{ - return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, NULL)); -} - -/* ------------------------------------------------------------------------ - * Code for interface org.ofono.phonesim.Manager - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:OFONOOrgOfonoPhonesimManager - * @title: OFONOOrgOfonoPhonesimManager - * @short_description: Generated C code for the org.ofono.phonesim.Manager D-Bus interface - * - * This section contains code for working with the org.ofono.phonesim.Manager D-Bus interface in C. - */ - -/* ---- Introspection data for org.ofono.phonesim.Manager ---- */ - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_name = -{ - { - -1, - (gchar *) "name", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_address = -{ - { - -1, - (gchar *) "address", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_port = -{ - { - -1, - (gchar *) "port", - (gchar *) "s", - NULL - }, - FALSE -}; - -static const _ExtendedGDBusArgInfo * const _ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_pointers[] = -{ - &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_name, - &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_address, - &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_port, - NULL -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_add = -{ - { - -1, - (gchar *) "Add", - (GDBusArgInfo **) &_ofono_org_ofono_phonesim_manager_method_info_add_IN_ARG_pointers, - NULL, - NULL - }, - "handle-add", - FALSE -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_remove_all = -{ - { - -1, - (gchar *) "RemoveAll", - NULL, - NULL, - NULL - }, - "handle-remove-all", - FALSE -}; - -static const _ExtendedGDBusMethodInfo _ofono_org_ofono_phonesim_manager_method_info_reset = -{ - { - -1, - (gchar *) "Reset", - NULL, - NULL, - NULL - }, - "handle-reset", - FALSE -}; - -static const _ExtendedGDBusMethodInfo * const _ofono_org_ofono_phonesim_manager_method_info_pointers[] = -{ - &_ofono_org_ofono_phonesim_manager_method_info_add, - &_ofono_org_ofono_phonesim_manager_method_info_remove_all, - &_ofono_org_ofono_phonesim_manager_method_info_reset, - NULL -}; - -static const _ExtendedGDBusInterfaceInfo _ofono_org_ofono_phonesim_manager_interface_info = -{ - { - -1, - (gchar *) "org.ofono.phonesim.Manager", - (GDBusMethodInfo **) &_ofono_org_ofono_phonesim_manager_method_info_pointers, - NULL, - NULL, - NULL - }, - "org-ofono-phonesim-manager", -}; - - -/** - * ofono_org_ofono_phonesim_manager_interface_info: - * - * Gets a machine-readable description of the org.ofono.phonesim.Manager D-Bus interface. - * - * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free. - */ -GDBusInterfaceInfo * -ofono_org_ofono_phonesim_manager_interface_info (void) -{ - return (GDBusInterfaceInfo *) &_ofono_org_ofono_phonesim_manager_interface_info.parent_struct; -} - -/** - * ofono_org_ofono_phonesim_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 #OFONOOrgOfonoPhonesimManager interface for a concrete class. - * The properties are overridden in the order they are defined. - * - * Returns: The last property id. - */ -guint -ofono_org_ofono_phonesim_manager_override_properties (GObjectClass *klass, guint property_id_begin) -{ - return property_id_begin - 1; -} - - - -/** - * OFONOOrgOfonoPhonesimManager: - * - * Abstract interface type for the D-Bus interface org.ofono.phonesim.Manager. - */ - -/** - * OFONOOrgOfonoPhonesimManagerIface: - * @parent_iface: The parent interface. - * @handle_add: Handler for the #OFONOOrgOfonoPhonesimManager::handle-add signal. - * @handle_remove_all: Handler for the #OFONOOrgOfonoPhonesimManager::handle-remove-all signal. - * @handle_reset: Handler for the #OFONOOrgOfonoPhonesimManager::handle-reset signal. - * - * Virtual table for the D-Bus interface org.ofono.phonesim.Manager. - */ - -typedef OFONOOrgOfonoPhonesimManagerIface OFONOOrgOfonoPhonesimManagerInterface; -G_DEFINE_INTERFACE (OFONOOrgOfonoPhonesimManager, ofono_org_ofono_phonesim_manager, G_TYPE_OBJECT); - -static void -ofono_org_ofono_phonesim_manager_default_init (OFONOOrgOfonoPhonesimManagerIface *iface) -{ - /* GObject signals for incoming D-Bus method calls: */ - /** - * OFONOOrgOfonoPhonesimManager::handle-add: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: A #GDBusMethodInvocation. - * @arg_name: Argument passed by remote caller. - * @arg_address: Argument passed by remote caller. - * @arg_port: Argument passed by remote caller. - * - * Signal emitted when a remote caller is invoking the Add() 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_org_ofono_phonesim_manager_complete_add() 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-add", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_add), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 4, - G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - - /** - * OFONOOrgOfonoPhonesimManager::handle-remove-all: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the RemoveAll() 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_org_ofono_phonesim_manager_complete_remove_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-remove-all", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_remove_all), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - - /** - * OFONOOrgOfonoPhonesimManager::handle-reset: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: A #GDBusMethodInvocation. - * - * Signal emitted when a remote caller is invoking the Reset() 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_org_ofono_phonesim_manager_complete_reset() 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-reset", - G_TYPE_FROM_INTERFACE (iface), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (OFONOOrgOfonoPhonesimManagerIface, handle_reset), - g_signal_accumulator_true_handled, - NULL, - g_cclosure_marshal_generic, - G_TYPE_BOOLEAN, - 1, - G_TYPE_DBUS_METHOD_INVOCATION); - -} - -/** - * ofono_org_ofono_phonesim_manager_call_add: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @arg_name: Argument to pass with the method invocation. - * @arg_address: Argument to pass with the method invocation. - * @arg_port: 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 Add() 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_org_ofono_phonesim_manager_call_add_finish() to get the result of the operation. - * - * See ofono_org_ofono_phonesim_manager_call_add_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_phonesim_manager_call_add ( - OFONOOrgOfonoPhonesimManager *proxy, - const gchar *arg_name, - const gchar *arg_address, - const gchar *arg_port, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Add", - g_variant_new ("(sss)", - arg_name, - arg_address, - arg_port), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_phonesim_manager_call_add_finish: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_add(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_add(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_add_finish ( - OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_add_sync: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @arg_name: Argument to pass with the method invocation. - * @arg_address: Argument to pass with the method invocation. - * @arg_port: Argument to pass with the method invocation. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the Add() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_phonesim_manager_call_add() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_add_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - const gchar *arg_name, - const gchar *arg_address, - const gchar *arg_port, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Add", - g_variant_new ("(sss)", - arg_name, - arg_address, - arg_port), - 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_org_ofono_phonesim_manager_call_remove_all: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @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 RemoveAll() 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_org_ofono_phonesim_manager_call_remove_all_finish() to get the result of the operation. - * - * See ofono_org_ofono_phonesim_manager_call_remove_all_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_phonesim_manager_call_remove_all ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "RemoveAll", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_phonesim_manager_call_remove_all_finish: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_remove_all(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_remove_all(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_remove_all_finish ( - OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_remove_all_sync: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the RemoveAll() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_phonesim_manager_call_remove_all() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_remove_all_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "RemoveAll", - 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_org_ofono_phonesim_manager_call_reset: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @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 Reset() 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_org_ofono_phonesim_manager_call_reset_finish() to get the result of the operation. - * - * See ofono_org_ofono_phonesim_manager_call_reset_sync() for the synchronous, blocking version of this method. - */ -void -ofono_org_ofono_phonesim_manager_call_reset ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data) -{ - g_dbus_proxy_call (G_DBUS_PROXY (proxy), - "Reset", - g_variant_new ("()"), - G_DBUS_CALL_FLAGS_NONE, - -1, - cancellable, - callback, - user_data); -} - -/** - * ofono_org_ofono_phonesim_manager_call_reset_finish: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_call_reset(). - * @error: Return location for error or %NULL. - * - * Finishes an operation started with ofono_org_ofono_phonesim_manager_call_reset(). - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_reset_finish ( - OFONOOrgOfonoPhonesimManager *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_org_ofono_phonesim_manager_call_reset_sync: - * @proxy: A #OFONOOrgOfonoPhonesimManagerProxy. - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @error: Return location for error or %NULL. - * - * Synchronously invokes the Reset() D-Bus method on @proxy. The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_phonesim_manager_call_reset() for the asynchronous version of this method. - * - * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set. - */ -gboolean -ofono_org_ofono_phonesim_manager_call_reset_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GError **error) -{ - GVariant *_ret; - _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy), - "Reset", - 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_org_ofono_phonesim_manager_complete_add: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the Add() 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_org_ofono_phonesim_manager_complete_add ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * ofono_org_ofono_phonesim_manager_complete_remove_all: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the RemoveAll() 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_org_ofono_phonesim_manager_complete_remove_all ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/** - * ofono_org_ofono_phonesim_manager_complete_reset: - * @object: A #OFONOOrgOfonoPhonesimManager. - * @invocation: (transfer full): A #GDBusMethodInvocation. - * - * Helper function used in service implementations to finish handling invocations of the Reset() 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_org_ofono_phonesim_manager_complete_reset ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation) -{ - g_dbus_method_invocation_return_value (invocation, - g_variant_new ("()")); -} - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoPhonesimManagerProxy: - * - * The #OFONOOrgOfonoPhonesimManagerProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoPhonesimManagerProxyClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoPhonesimManagerProxy. - */ - -struct _OFONOOrgOfonoPhonesimManagerProxyPrivate -{ - GData *qdata; -}; - -static void ofono_org_ofono_phonesim_manager_proxy_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface); - -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerProxy, ofono_org_ofono_phonesim_manager_proxy, G_TYPE_DBUS_PROXY, - G_ADD_PRIVATE (OFONOOrgOfonoPhonesimManagerProxy) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_proxy_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerProxy, ofono_org_ofono_phonesim_manager_proxy, G_TYPE_DBUS_PROXY, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_proxy_iface_init)); - -#endif -static void -ofono_org_ofono_phonesim_manager_proxy_finalize (GObject *object) -{ - OFONOOrgOfonoPhonesimManagerProxy *proxy = OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY (object); - g_datalist_clear (&proxy->priv->qdata); - G_OBJECT_CLASS (ofono_org_ofono_phonesim_manager_proxy_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_phonesim_manager_proxy_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_phonesim_manager_proxy_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec G_GNUC_UNUSED) -{ -} - -static void -ofono_org_ofono_phonesim_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_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_manager_proxy_g_properties_changed (GDBusProxy *_proxy, - GVariant *changed_properties, - const gchar *const *invalidated_properties) -{ - OFONOOrgOfonoPhonesimManagerProxy *proxy = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_init (OFONOOrgOfonoPhonesimManagerProxy *proxy) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - proxy->priv = ofono_org_ofono_phonesim_manager_proxy_get_instance_private (proxy); -#else - proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyPrivate); -#endif - - g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), ofono_org_ofono_phonesim_manager_interface_info ()); -} - -static void -ofono_org_ofono_phonesim_manager_proxy_class_init (OFONOOrgOfonoPhonesimManagerProxyClass *klass) -{ - GObjectClass *gobject_class; - GDBusProxyClass *proxy_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_phonesim_manager_proxy_finalize; - gobject_class->get_property = ofono_org_ofono_phonesim_manager_proxy_get_property; - gobject_class->set_property = ofono_org_ofono_phonesim_manager_proxy_set_property; - - proxy_class = G_DBUS_PROXY_CLASS (klass); - proxy_class->g_signal = ofono_org_ofono_phonesim_manager_proxy_g_signal; - proxy_class->g_properties_changed = ofono_org_ofono_phonesim_manager_proxy_g_properties_changed; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoPhonesimManagerProxyPrivate)); -#endif -} - -static void -ofono_org_ofono_phonesim_manager_proxy_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface) -{ -} - -/** - * ofono_org_ofono_phonesim_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.phonesim.Manager. 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_org_ofono_phonesim_manager_proxy_new_finish() to get the result of the operation. - * - * See ofono_org_ofono_phonesim_manager_proxy_new_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); -} - -/** - * ofono_org_ofono_phonesim_manager_proxy_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_proxy_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_phonesim_manager_proxy_new(). - * - * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoPhonesimManager * -ofono_org_ofono_phonesim_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_ORG_OFONO_PHONESIM_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_phonesim_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.phonesim.Manager. See g_dbus_proxy_new_sync() for more details. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_phonesim_manager_proxy_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoPhonesimManager * -ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.ofono.phonesim.Manager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); - else - return NULL; -} - - -/** - * ofono_org_ofono_phonesim_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_new_for_bus_finish() to get the result of the operation. - * - * See ofono_org_ofono_phonesim_manager_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); -} - -/** - * ofono_org_ofono_phonesim_manager_proxy_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_org_ofono_phonesim_manager_proxy_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_org_ofono_phonesim_manager_proxy_new_for_bus(). - * - * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoPhonesimManager * -ofono_org_ofono_phonesim_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_ORG_OFONO_PHONESIM_MANAGER (ret); - else - return NULL; -} - -/** - * ofono_org_ofono_phonesim_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_org_ofono_phonesim_manager_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. - * - * The calling thread is blocked until a reply is received. - * - * See ofono_org_ofono_phonesim_manager_proxy_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerProxy): The constructed proxy object or %NULL if @error is set. - */ -OFONOOrgOfonoPhonesimManager * -ofono_org_ofono_phonesim_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_TYPE_ORG_OFONO_PHONESIM_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.phonesim.Manager", NULL); - if (ret != NULL) - return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); - else - return NULL; -} - - -/* ------------------------------------------------------------------------ */ - -/** - * OFONOOrgOfonoPhonesimManagerSkeleton: - * - * The #OFONOOrgOfonoPhonesimManagerSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOOrgOfonoPhonesimManagerSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOOrgOfonoPhonesimManagerSkeleton. - */ - -struct _OFONOOrgOfonoPhonesimManagerSkeletonPrivate -{ - GValue *properties; - GList *changed_properties; - GSource *changed_properties_idle_source; - GMainContext *context; - GMutex lock; -}; - -static void -_ofono_org_ofono_phonesim_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) -{ - OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_TYPE_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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) -{ - OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_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) -{ - OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_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_org_ofono_phonesim_manager_skeleton_vtable = -{ - _ofono_org_ofono_phonesim_manager_skeleton_handle_method_call, - _ofono_org_ofono_phonesim_manager_skeleton_handle_get_property, - _ofono_org_ofono_phonesim_manager_skeleton_handle_set_property, - {NULL} -}; - -static GDBusInterfaceInfo * -ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return ofono_org_ofono_phonesim_manager_interface_info (); -} - -static GDBusInterfaceVTable * -ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED) -{ - return (GDBusInterfaceVTable *) &_ofono_org_ofono_phonesim_manager_skeleton_vtable; -} - -static GVariant * -ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton) -{ - OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON (_skeleton); - - GVariantBuilder builder; - guint n; - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}")); - if (_ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties == NULL) - goto out; - for (n = 0; _ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties[n] != NULL; n++) - { - GDBusPropertyInfo *info = _ofono_org_ofono_phonesim_manager_interface_info.parent_struct.properties[n]; - if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE) - { - GVariant *value; - value = _ofono_org_ofono_phonesim_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.phonesim.Manager", 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_org_ofono_phonesim_manager_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton) -{ -} - -static void ofono_org_ofono_phonesim_manager_skeleton_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface); -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerSkeleton, ofono_org_ofono_phonesim_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_ADD_PRIVATE (OFONOOrgOfonoPhonesimManagerSkeleton) - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_skeleton_iface_init)); - -#else -G_DEFINE_TYPE_WITH_CODE (OFONOOrgOfonoPhonesimManagerSkeleton, ofono_org_ofono_phonesim_manager_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, ofono_org_ofono_phonesim_manager_skeleton_iface_init)); - -#endif -static void -ofono_org_ofono_phonesim_manager_skeleton_finalize (GObject *object) -{ - OFONOOrgOfonoPhonesimManagerSkeleton *skeleton = OFONO_ORG_OFONO_PHONESIM_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_org_ofono_phonesim_manager_skeleton_parent_class)->finalize (object); -} - -static void -ofono_org_ofono_phonesim_manager_skeleton_init (OFONOOrgOfonoPhonesimManagerSkeleton *skeleton) -{ -#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 - skeleton->priv = ofono_org_ofono_phonesim_manager_skeleton_get_instance_private (skeleton); -#else - skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonPrivate); -#endif - - g_mutex_init (&skeleton->priv->lock); - skeleton->priv->context = g_main_context_ref_thread_default (); -} - -static void -ofono_org_ofono_phonesim_manager_skeleton_class_init (OFONOOrgOfonoPhonesimManagerSkeletonClass *klass) -{ - GObjectClass *gobject_class; - GDBusInterfaceSkeletonClass *skeleton_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = ofono_org_ofono_phonesim_manager_skeleton_finalize; - - skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass); - skeleton_class->get_info = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_info; - skeleton_class->get_properties = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_properties; - skeleton_class->flush = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_flush; - skeleton_class->get_vtable = ofono_org_ofono_phonesim_manager_skeleton_dbus_interface_get_vtable; - -#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 - g_type_class_add_private (klass, sizeof (OFONOOrgOfonoPhonesimManagerSkeletonPrivate)); -#endif -} - -static void -ofono_org_ofono_phonesim_manager_skeleton_iface_init (OFONOOrgOfonoPhonesimManagerIface *iface) -{ -} - -/** - * ofono_org_ofono_phonesim_manager_skeleton_new: - * - * Creates a skeleton object for the D-Bus interface org.ofono.phonesim.Manager. - * - * Returns: (transfer full) (type OFONOOrgOfonoPhonesimManagerSkeleton): The skeleton object. - */ -OFONOOrgOfonoPhonesimManager * -ofono_org_ofono_phonesim_manager_skeleton_new (void) -{ - return OFONO_ORG_OFONO_PHONESIM_MANAGER (g_object_new (OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, NULL)); -} - -/* ------------------------------------------------------------------------ - * Code for Object, ObjectProxy and ObjectSkeleton - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:OFONOObject - * @title: OFONOObject - * @short_description: Specialized GDBusObject types - * - * This section contains the #OFONOObject, #OFONOObjectProxy, and #OFONOObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces. - */ - -/** - * OFONOObject: - * - * The #OFONOObject type is a specialized container of interfaces. - */ - -/** - * OFONOObjectIface: - * @parent_iface: The parent interface. - * - * Virtual table for the #OFONOObject interface. - */ - -typedef OFONOObjectIface OFONOObjectInterface; -G_DEFINE_INTERFACE_WITH_CODE (OFONOObject, ofono_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT)); - -static void -ofono_object_default_init (OFONOObjectIface *iface) -{ - /** - * OFONOObject:org-freedesktop-dbus-introspectable: - * - * The #OFONOOrgFreedesktopDBusIntrospectable 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_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); - - /** - * OFONOObject:org-ofono-manager: - * - * The #OFONOOrgOfonoManager instance corresponding to the D-Bus interface org.ofono.Manager, 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-manager", "org-ofono-manager", "org-ofono-manager", OFONO_TYPE_ORG_OFONO_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); - - /** - * OFONOObject:org-ofono-handsfree-audio-manager: - * - * The #OFONOOrgOfonoHandsfreeAudioManager instance corresponding to the D-Bus interface org.ofono.HandsfreeAudioManager, 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-audio-manager", "org-ofono-handsfree-audio-manager", "org-ofono-handsfree-audio-manager", OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); - - /** - * OFONOObject:org-ofono-phonesim-manager: - * - * The #OFONOOrgOfonoPhonesimManager instance corresponding to the D-Bus interface org.ofono.phonesim.Manager, 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-phonesim-manager", "org-ofono-phonesim-manager", "org-ofono-phonesim-manager", OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS)); - -} - -/** - * ofono_object_get_org_freedesktop_dbus_introspectable: - * @object: A #OFONOObject. - * - * Gets the #OFONOOrgFreedesktopDBusIntrospectable instance for the D-Bus interface org.freedesktop.DBus.Introspectable on @object, if any. - * - * Returns: (transfer full): A #OFONOOrgFreedesktopDBusIntrospectable that must be freed with g_object_unref() or %NULL if @object does not implement the interface. - */ -OFONOOrgFreedesktopDBusIntrospectable *ofono_object_get_org_freedesktop_dbus_introspectable (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.DBus.Introspectable"); - if (ret == NULL) - return NULL; - return OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); -} - -/** - * ofono_object_get_org_ofono_manager: - * @object: A #OFONOObject. - * - * Gets the #OFONOOrgOfonoManager instance for the D-Bus interface org.ofono.Manager on @object, if any. - * - * Returns: (transfer full): A #OFONOOrgOfonoManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. - */ -OFONOOrgOfonoManager *ofono_object_get_org_ofono_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Manager"); - if (ret == NULL) - return NULL; - return OFONO_ORG_OFONO_MANAGER (ret); -} - -/** - * ofono_object_get_org_ofono_handsfree_audio_manager: - * @object: A #OFONOObject. - * - * Gets the #OFONOOrgOfonoHandsfreeAudioManager instance for the D-Bus interface org.ofono.HandsfreeAudioManager on @object, if any. - * - * Returns: (transfer full): A #OFONOOrgOfonoHandsfreeAudioManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. - */ -OFONOOrgOfonoHandsfreeAudioManager *ofono_object_get_org_ofono_handsfree_audio_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); - if (ret == NULL) - return NULL; - return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); -} - -/** - * ofono_object_get_org_ofono_phonesim_manager: - * @object: A #OFONOObject. - * - * Gets the #OFONOOrgOfonoPhonesimManager instance for the D-Bus interface org.ofono.phonesim.Manager on @object, if any. - * - * Returns: (transfer full): A #OFONOOrgOfonoPhonesimManager that must be freed with g_object_unref() or %NULL if @object does not implement the interface. - */ -OFONOOrgOfonoPhonesimManager *ofono_object_get_org_ofono_phonesim_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); - if (ret == NULL) - return NULL; - return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); -} - - -/** - * ofono_object_peek_org_freedesktop_dbus_introspectable: (skip) - * @object: A #OFONOObject. - * - * Like ofono_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 #OFONOOrgFreedesktopDBusIntrospectable or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. - */ -OFONOOrgFreedesktopDBusIntrospectable *ofono_object_peek_org_freedesktop_dbus_introspectable (OFONOObject *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_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ret); -} - -/** - * ofono_object_peek_org_ofono_manager: (skip) - * @object: A #OFONOObject. - * - * Like ofono_object_get_org_ofono_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 #OFONOOrgOfonoManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. - */ -OFONOOrgOfonoManager *ofono_object_peek_org_ofono_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.Manager"); - if (ret == NULL) - return NULL; - g_object_unref (ret); - return OFONO_ORG_OFONO_MANAGER (ret); -} - -/** - * ofono_object_peek_org_ofono_handsfree_audio_manager: (skip) - * @object: A #OFONOObject. - * - * Like ofono_object_get_org_ofono_handsfree_audio_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 #OFONOOrgOfonoHandsfreeAudioManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. - */ -OFONOOrgOfonoHandsfreeAudioManager *ofono_object_peek_org_ofono_handsfree_audio_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); - if (ret == NULL) - return NULL; - g_object_unref (ret); - return OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ret); -} - -/** - * ofono_object_peek_org_ofono_phonesim_manager: (skip) - * @object: A #OFONOObject. - * - * Like ofono_object_get_org_ofono_phonesim_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 #OFONOOrgOfonoPhonesimManager or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object. - */ -OFONOOrgOfonoPhonesimManager *ofono_object_peek_org_ofono_phonesim_manager (OFONOObject *object) -{ - GDBusInterface *ret; - ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); - if (ret == NULL) - return NULL; - g_object_unref (ret); - return OFONO_ORG_OFONO_PHONESIM_MANAGER (ret); -} - - -static void -ofono_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); -} - -/** - * OFONOObjectProxy: - * - * The #OFONOObjectProxy structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOObjectProxyClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOObjectProxy. - */ - -static void -ofono_object_proxy__ofono_object_iface_init (OFONOObjectIface *iface G_GNUC_UNUSED) -{ -} - -static void -ofono_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface) -{ - iface->interface_added = ofono_object_notify; - iface->interface_removed = ofono_object_notify; -} - - -G_DEFINE_TYPE_WITH_CODE (OFONOObjectProxy, ofono_object_proxy, G_TYPE_DBUS_OBJECT_PROXY, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_OBJECT, ofono_object_proxy__ofono_object_iface_init) - G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_object_proxy__g_dbus_object_iface_init)); - -static void -ofono_object_proxy_init (OFONOObjectProxy *object G_GNUC_UNUSED) -{ -} - -static void -ofono_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_object_proxy_get_property (GObject *gobject, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - OFONOObjectProxy *object = OFONO_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.Manager"); - g_value_take_object (value, interface); - break; - - case 3: - interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); - g_value_take_object (value, interface); - break; - - case 4: - interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); - g_value_take_object (value, interface); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -ofono_object_proxy_class_init (OFONOObjectProxyClass *klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->set_property = ofono_object_proxy_set_property; - gobject_class->get_property = ofono_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-manager"); - g_object_class_override_property (gobject_class, 3, "org-ofono-handsfree-audio-manager"); - g_object_class_override_property (gobject_class, 4, "org-ofono-phonesim-manager"); -} - -/** - * ofono_object_proxy_new: - * @connection: A #GDBusConnection. - * @object_path: An object path. - * - * Creates a new proxy object. - * - * Returns: (transfer full): The proxy object. - */ -OFONOObjectProxy * -ofono_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_OBJECT_PROXY (g_object_new (OFONO_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL)); -} - -/** - * OFONOObjectSkeleton: - * - * The #OFONOObjectSkeleton structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOObjectSkeletonClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOObjectSkeleton. - */ - -static void -ofono_object_skeleton__ofono_object_iface_init (OFONOObjectIface *iface G_GNUC_UNUSED) -{ -} - - -static void -ofono_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface) -{ - iface->interface_added = ofono_object_notify; - iface->interface_removed = ofono_object_notify; -} - -G_DEFINE_TYPE_WITH_CODE (OFONOObjectSkeleton, ofono_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON, - G_IMPLEMENT_INTERFACE (OFONO_TYPE_OBJECT, ofono_object_skeleton__ofono_object_iface_init) - G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, ofono_object_skeleton__g_dbus_object_iface_init)); - -static void -ofono_object_skeleton_init (OFONOObjectSkeleton *object G_GNUC_UNUSED) -{ -} - -static void -ofono_object_skeleton_set_property (GObject *gobject, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - OFONOObjectSkeleton *object = OFONO_OBJECT_SKELETON (gobject); - GDBusInterfaceSkeleton *interface; - - switch (prop_id) - { - case 1: - interface = g_value_get_object (value); - if (interface != NULL) - { - g_warn_if_fail (OFONO_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_IS_ORG_OFONO_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.Manager"); - } - break; - - case 3: - interface = g_value_get_object (value); - if (interface != NULL) - { - g_warn_if_fail (OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_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.HandsfreeAudioManager"); - } - break; - - case 4: - interface = g_value_get_object (value); - if (interface != NULL) - { - g_warn_if_fail (OFONO_IS_ORG_OFONO_PHONESIM_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.phonesim.Manager"); - } - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -ofono_object_skeleton_get_property (GObject *gobject, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - OFONOObjectSkeleton *object = OFONO_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.Manager"); - g_value_take_object (value, interface); - break; - - case 3: - interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.HandsfreeAudioManager"); - g_value_take_object (value, interface); - break; - - case 4: - interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.ofono.phonesim.Manager"); - g_value_take_object (value, interface); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec); - break; - } -} - -static void -ofono_object_skeleton_class_init (OFONOObjectSkeletonClass *klass) -{ - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->set_property = ofono_object_skeleton_set_property; - gobject_class->get_property = ofono_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-manager"); - g_object_class_override_property (gobject_class, 3, "org-ofono-handsfree-audio-manager"); - g_object_class_override_property (gobject_class, 4, "org-ofono-phonesim-manager"); -} - -/** - * ofono_object_skeleton_new: - * @object_path: An object path. - * - * Creates a new skeleton object. - * - * Returns: (transfer full): The skeleton object. - */ -OFONOObjectSkeleton * -ofono_object_skeleton_new (const gchar *object_path) -{ - g_return_val_if_fail (g_variant_is_object_path (object_path), NULL); - return OFONO_OBJECT_SKELETON (g_object_new (OFONO_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL)); -} - -/** - * ofono_object_skeleton_set_org_freedesktop_dbus_introspectable: - * @object: A #OFONOObjectSkeleton. - * @interface_: (allow-none): A #OFONOOrgFreedesktopDBusIntrospectable or %NULL to clear the interface. - * - * Sets the #OFONOOrgFreedesktopDBusIntrospectable instance for the D-Bus interface org.freedesktop.DBus.Introspectable on @object. - */ -void ofono_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOObjectSkeleton *object, OFONOOrgFreedesktopDBusIntrospectable *interface_) -{ - g_object_set (G_OBJECT (object), "org-freedesktop-dbus-introspectable", interface_, NULL); -} - -/** - * ofono_object_skeleton_set_org_ofono_manager: - * @object: A #OFONOObjectSkeleton. - * @interface_: (allow-none): A #OFONOOrgOfonoManager or %NULL to clear the interface. - * - * Sets the #OFONOOrgOfonoManager instance for the D-Bus interface org.ofono.Manager on @object. - */ -void ofono_object_skeleton_set_org_ofono_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoManager *interface_) -{ - g_object_set (G_OBJECT (object), "org-ofono-manager", interface_, NULL); -} - -/** - * ofono_object_skeleton_set_org_ofono_handsfree_audio_manager: - * @object: A #OFONOObjectSkeleton. - * @interface_: (allow-none): A #OFONOOrgOfonoHandsfreeAudioManager or %NULL to clear the interface. - * - * Sets the #OFONOOrgOfonoHandsfreeAudioManager instance for the D-Bus interface org.ofono.HandsfreeAudioManager on @object. - */ -void ofono_object_skeleton_set_org_ofono_handsfree_audio_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoHandsfreeAudioManager *interface_) -{ - g_object_set (G_OBJECT (object), "org-ofono-handsfree-audio-manager", interface_, NULL); -} - -/** - * ofono_object_skeleton_set_org_ofono_phonesim_manager: - * @object: A #OFONOObjectSkeleton. - * @interface_: (allow-none): A #OFONOOrgOfonoPhonesimManager or %NULL to clear the interface. - * - * Sets the #OFONOOrgOfonoPhonesimManager instance for the D-Bus interface org.ofono.phonesim.Manager on @object. - */ -void ofono_object_skeleton_set_org_ofono_phonesim_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoPhonesimManager *interface_) -{ - g_object_set (G_OBJECT (object), "org-ofono-phonesim-manager", interface_, NULL); -} - - -/* ------------------------------------------------------------------------ - * Code for ObjectManager client - * ------------------------------------------------------------------------ - */ - -/** - * SECTION:OFONOObjectManagerClient - * @title: OFONOObjectManagerClient - * @short_description: Generated GDBusObjectManagerClient type - * - * This section contains a #GDBusObjectManagerClient that uses ofono_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. - */ - -/** - * OFONOObjectManagerClient: - * - * The #OFONOObjectManagerClient structure contains only private data and should only be accessed using the provided API. - */ - -/** - * OFONOObjectManagerClientClass: - * @parent_class: The parent class. - * - * Class structure for #OFONOObjectManagerClient. - */ - -G_DEFINE_TYPE (OFONOObjectManagerClient, ofono_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT); - -static void -ofono_object_manager_client_init (OFONOObjectManagerClient *manager G_GNUC_UNUSED) -{ -} - -static void -ofono_object_manager_client_class_init (OFONOObjectManagerClientClass *klass G_GNUC_UNUSED) -{ -} - -/** - * ofono_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 #OFONOObjectProxy. - */ -GType -ofono_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_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_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)); - g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.Manager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)); - g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.HandsfreeAudioManager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)); - g_hash_table_insert (lookup_hash, (gpointer) "org.ofono.phonesim.Manager", GSIZE_TO_POINTER (OFONO_TYPE_ORG_OFONO_PHONESIM_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_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_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_object_manager_client_new_finish() to get the result of the operation. - * - * See ofono_object_manager_client_new_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_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_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_object_manager_client_get_proxy_type, NULL); -} - -/** - * ofono_object_manager_client_new_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_object_manager_client_new(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_object_manager_client_new(). - * - * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -ofono_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_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_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_object_manager_client_new() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -ofono_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_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", ofono_object_manager_client_get_proxy_type, NULL); - if (ret != NULL) - return G_DBUS_OBJECT_MANAGER (ret); - else - return NULL; -} - - -/** - * ofono_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_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_object_manager_client_new_for_bus_finish() to get the result of the operation. - * - * See ofono_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor. - */ -void -ofono_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_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_object_manager_client_get_proxy_type, NULL); -} - -/** - * ofono_object_manager_client_new_for_bus_finish: - * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to ofono_object_manager_client_new_for_bus(). - * @error: Return location for error or %NULL - * - * Finishes an operation started with ofono_object_manager_client_new_for_bus(). - * - * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -ofono_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_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_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_object_manager_client_new_for_bus() for the asynchronous version of this constructor. - * - * Returns: (transfer full) (type OFONOObjectManagerClient): The constructed object manager client or %NULL if @error is set. - */ -GDBusObjectManager * -ofono_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_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", ofono_object_manager_client_get_proxy_type, NULL); - if (ret != NULL) - return G_DBUS_OBJECT_MANAGER (ret); - else - return NULL; -} - - diff --git a/lib_ofono.h b/lib_ofono.h deleted file mode 100644 index bdc946e..0000000 --- a/lib_ofono.h +++ /dev/null @@ -1,981 +0,0 @@ -/* - * 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. - */ - -#ifndef __LIB_OFONO_H__ -#define __LIB_OFONO_H__ - -#include - -G_BEGIN_DECLS - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.freedesktop.DBus.Introspectable */ - -#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ofono_org_freedesktop_dbus_introspectable_get_type ()) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectable)) -#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE)) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOOrgFreedesktopDBusIntrospectableIface)) - -struct _OFONOOrgFreedesktopDBusIntrospectable; -typedef struct _OFONOOrgFreedesktopDBusIntrospectable OFONOOrgFreedesktopDBusIntrospectable; -typedef struct _OFONOOrgFreedesktopDBusIntrospectableIface OFONOOrgFreedesktopDBusIntrospectableIface; - -struct _OFONOOrgFreedesktopDBusIntrospectableIface -{ - GTypeInterface parent_iface; - - gboolean (*handle_introspect) ( - OFONOOrgFreedesktopDBusIntrospectable *object, - GDBusMethodInvocation *invocation); - -}; - -GType ofono_org_freedesktop_dbus_introspectable_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_org_freedesktop_dbus_introspectable_interface_info (void); -guint ofono_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_org_freedesktop_dbus_introspectable_complete_introspect ( - OFONOOrgFreedesktopDBusIntrospectable *object, - GDBusMethodInvocation *invocation, - const gchar *xml); - - - -/* D-Bus method calls: */ -void ofono_org_freedesktop_dbus_introspectable_call_introspect ( - OFONOOrgFreedesktopDBusIntrospectable *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_finish ( - OFONOOrgFreedesktopDBusIntrospectable *proxy, - gchar **out_xml, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_freedesktop_dbus_introspectable_call_introspect_sync ( - OFONOOrgFreedesktopDBusIntrospectable *proxy, - gchar **out_xml, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (ofono_org_freedesktop_dbus_introspectable_proxy_get_type ()) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxy)) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass)) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOOrgFreedesktopDBusIntrospectableProxyClass)) -#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) -#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) - -typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxy OFONOOrgFreedesktopDBusIntrospectableProxy; -typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass OFONOOrgFreedesktopDBusIntrospectableProxyClass; -typedef struct _OFONOOrgFreedesktopDBusIntrospectableProxyPrivate OFONOOrgFreedesktopDBusIntrospectableProxyPrivate; - -struct _OFONOOrgFreedesktopDBusIntrospectableProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOOrgFreedesktopDBusIntrospectableProxyPrivate *priv; -}; - -struct _OFONOOrgFreedesktopDBusIntrospectableProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_org_freedesktop_dbus_introspectable_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgFreedesktopDBusIntrospectableProxy, g_object_unref) -#endif - -void ofono_org_freedesktop_dbus_introspectable_proxy_new ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void ofono_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); -OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgFreedesktopDBusIntrospectable *ofono_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); - - -/* ---- */ - -#define OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (ofono_org_freedesktop_dbus_introspectable_skeleton_get_type ()) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeleton)) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass)) -#define OFONO_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOOrgFreedesktopDBusIntrospectableSkeletonClass)) -#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) -#define OFONO_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) - -typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton OFONOOrgFreedesktopDBusIntrospectableSkeleton; -typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass OFONOOrgFreedesktopDBusIntrospectableSkeletonClass; -typedef struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate; - -struct _OFONOOrgFreedesktopDBusIntrospectableSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOOrgFreedesktopDBusIntrospectableSkeletonPrivate *priv; -}; - -struct _OFONOOrgFreedesktopDBusIntrospectableSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_org_freedesktop_dbus_introspectable_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgFreedesktopDBusIntrospectableSkeleton, g_object_unref) -#endif - -OFONOOrgFreedesktopDBusIntrospectable *ofono_org_freedesktop_dbus_introspectable_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.Manager */ - -#define OFONO_TYPE_ORG_OFONO_MANAGER (ofono_org_ofono_manager_get_type ()) -#define OFONO_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManager)) -#define OFONO_IS_ORG_OFONO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER)) -#define OFONO_ORG_OFONO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_MANAGER, OFONOOrgOfonoManagerIface)) - -struct _OFONOOrgOfonoManager; -typedef struct _OFONOOrgOfonoManager OFONOOrgOfonoManager; -typedef struct _OFONOOrgOfonoManagerIface OFONOOrgOfonoManagerIface; - -struct _OFONOOrgOfonoManagerIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_modems) ( - OFONOOrgOfonoManager *object, - GDBusMethodInvocation *invocation); - - void (*modem_added) ( - OFONOOrgOfonoManager *object, - const gchar *arg_path, - GVariant *arg_properties); - - void (*modem_removed) ( - OFONOOrgOfonoManager *object, - const gchar *arg_path); - -}; - -GType ofono_org_ofono_manager_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_org_ofono_manager_interface_info (void); -guint ofono_org_ofono_manager_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_org_ofono_manager_complete_get_modems ( - OFONOOrgOfonoManager *object, - GDBusMethodInvocation *invocation, - GVariant *modems); - - - -/* D-Bus signal emissions functions: */ -void ofono_org_ofono_manager_emit_modem_added ( - OFONOOrgOfonoManager *object, - const gchar *arg_path, - GVariant *arg_properties); - -void ofono_org_ofono_manager_emit_modem_removed ( - OFONOOrgOfonoManager *object, - const gchar *arg_path); - - - -/* D-Bus method calls: */ -void ofono_org_ofono_manager_call_get_modems ( - OFONOOrgOfonoManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_manager_call_get_modems_finish ( - OFONOOrgOfonoManager *proxy, - GVariant **out_modems, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_manager_call_get_modems_sync ( - OFONOOrgOfonoManager *proxy, - GVariant **out_modems, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_MANAGER_PROXY (ofono_org_ofono_manager_proxy_get_type ()) -#define OFONO_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxy)) -#define OFONO_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass)) -#define OFONO_ORG_OFONO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY, OFONOOrgOfonoManagerProxyClass)) -#define OFONO_IS_ORG_OFONO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)) -#define OFONO_IS_ORG_OFONO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_PROXY)) - -typedef struct _OFONOOrgOfonoManagerProxy OFONOOrgOfonoManagerProxy; -typedef struct _OFONOOrgOfonoManagerProxyClass OFONOOrgOfonoManagerProxyClass; -typedef struct _OFONOOrgOfonoManagerProxyPrivate OFONOOrgOfonoManagerProxyPrivate; - -struct _OFONOOrgOfonoManagerProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOOrgOfonoManagerProxyPrivate *priv; -}; - -struct _OFONOOrgOfonoManagerProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_org_ofono_manager_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoManagerProxy, g_object_unref) -#endif - -void ofono_org_ofono_manager_proxy_new ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_manager_proxy_new_for_bus ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoManager *ofono_org_ofono_manager_proxy_new_for_bus_sync ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON (ofono_org_ofono_manager_skeleton_get_type ()) -#define OFONO_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeleton)) -#define OFONO_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass)) -#define OFONO_ORG_OFONO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON, OFONOOrgOfonoManagerSkeletonClass)) -#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON)) -#define OFONO_IS_ORG_OFONO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_MANAGER_SKELETON)) - -typedef struct _OFONOOrgOfonoManagerSkeleton OFONOOrgOfonoManagerSkeleton; -typedef struct _OFONOOrgOfonoManagerSkeletonClass OFONOOrgOfonoManagerSkeletonClass; -typedef struct _OFONOOrgOfonoManagerSkeletonPrivate OFONOOrgOfonoManagerSkeletonPrivate; - -struct _OFONOOrgOfonoManagerSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOOrgOfonoManagerSkeletonPrivate *priv; -}; - -struct _OFONOOrgOfonoManagerSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_org_ofono_manager_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoManagerSkeleton, g_object_unref) -#endif - -OFONOOrgOfonoManager *ofono_org_ofono_manager_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.HandsfreeAudioManager */ - -#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER (ofono_org_ofono_handsfree_audio_manager_get_type ()) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManager)) -#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER)) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER, OFONOOrgOfonoHandsfreeAudioManagerIface)) - -struct _OFONOOrgOfonoHandsfreeAudioManager; -typedef struct _OFONOOrgOfonoHandsfreeAudioManager OFONOOrgOfonoHandsfreeAudioManager; -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerIface OFONOOrgOfonoHandsfreeAudioManagerIface; - -struct _OFONOOrgOfonoHandsfreeAudioManagerIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_cards) ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_register) ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_path, - const gchar *arg_codecs); - - gboolean (*handle_unregister) ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_path); - - void (*card_added) ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path, - GVariant *arg_properties); - - void (*card_removed) ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path); - -}; - -GType ofono_org_ofono_handsfree_audio_manager_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_org_ofono_handsfree_audio_manager_interface_info (void); -guint ofono_org_ofono_handsfree_audio_manager_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_org_ofono_handsfree_audio_manager_complete_get_cards ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation, - GVariant *cards); - -void ofono_org_ofono_handsfree_audio_manager_complete_register ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation); - -void ofono_org_ofono_handsfree_audio_manager_complete_unregister ( - OFONOOrgOfonoHandsfreeAudioManager *object, - GDBusMethodInvocation *invocation); - - - -/* D-Bus signal emissions functions: */ -void ofono_org_ofono_handsfree_audio_manager_emit_card_added ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path, - GVariant *arg_properties); - -void ofono_org_ofono_handsfree_audio_manager_emit_card_removed ( - OFONOOrgOfonoHandsfreeAudioManager *object, - const gchar *arg_path); - - - -/* D-Bus method calls: */ -void ofono_org_ofono_handsfree_audio_manager_call_get_cards ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_finish ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GVariant **out_cards, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_get_cards_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GVariant **out_cards, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_handsfree_audio_manager_call_register ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - const gchar *arg_codecs, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_register_finish ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_register_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - const gchar *arg_codecs, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_handsfree_audio_manager_call_unregister ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_finish ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_handsfree_audio_manager_call_unregister_sync ( - OFONOOrgOfonoHandsfreeAudioManager *proxy, - const gchar *arg_path, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY (ofono_org_ofono_handsfree_audio_manager_proxy_get_type ()) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxy)) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass)) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY, OFONOOrgOfonoHandsfreeAudioManagerProxyClass)) -#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)) -#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_PROXY)) - -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxy OFONOOrgOfonoHandsfreeAudioManagerProxy; -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass OFONOOrgOfonoHandsfreeAudioManagerProxyClass; -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate; - -struct _OFONOOrgOfonoHandsfreeAudioManagerProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOOrgOfonoHandsfreeAudioManagerProxyPrivate *priv; -}; - -struct _OFONOOrgOfonoHandsfreeAudioManagerProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_org_ofono_handsfree_audio_manager_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoHandsfreeAudioManagerProxy, g_object_unref) -#endif - -void ofono_org_ofono_handsfree_audio_manager_proxy_new ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_proxy_new_for_bus_sync ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON (ofono_org_ofono_handsfree_audio_manager_skeleton_get_type ()) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeleton)) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass)) -#define OFONO_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON, OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass)) -#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON)) -#define OFONO_IS_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_HANDSFREE_AUDIO_MANAGER_SKELETON)) - -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton OFONOOrgOfonoHandsfreeAudioManagerSkeleton; -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass; -typedef struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate; - -struct _OFONOOrgOfonoHandsfreeAudioManagerSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOOrgOfonoHandsfreeAudioManagerSkeletonPrivate *priv; -}; - -struct _OFONOOrgOfonoHandsfreeAudioManagerSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_org_ofono_handsfree_audio_manager_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoHandsfreeAudioManagerSkeleton, g_object_unref) -#endif - -OFONOOrgOfonoHandsfreeAudioManager *ofono_org_ofono_handsfree_audio_manager_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.phonesim.Manager */ - -#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER (ofono_org_ofono_phonesim_manager_get_type ()) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManager)) -#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER)) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER, OFONOOrgOfonoPhonesimManagerIface)) - -struct _OFONOOrgOfonoPhonesimManager; -typedef struct _OFONOOrgOfonoPhonesimManager OFONOOrgOfonoPhonesimManager; -typedef struct _OFONOOrgOfonoPhonesimManagerIface OFONOOrgOfonoPhonesimManagerIface; - -struct _OFONOOrgOfonoPhonesimManagerIface -{ - GTypeInterface parent_iface; - - gboolean (*handle_add) ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_name, - const gchar *arg_address, - const gchar *arg_port); - - gboolean (*handle_remove_all) ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_reset) ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation); - -}; - -GType ofono_org_ofono_phonesim_manager_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_org_ofono_phonesim_manager_interface_info (void); -guint ofono_org_ofono_phonesim_manager_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_org_ofono_phonesim_manager_complete_add ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation); - -void ofono_org_ofono_phonesim_manager_complete_remove_all ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation); - -void ofono_org_ofono_phonesim_manager_complete_reset ( - OFONOOrgOfonoPhonesimManager *object, - GDBusMethodInvocation *invocation); - - - -/* D-Bus method calls: */ -void ofono_org_ofono_phonesim_manager_call_add ( - OFONOOrgOfonoPhonesimManager *proxy, - const gchar *arg_name, - const gchar *arg_address, - const gchar *arg_port, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_phonesim_manager_call_add_finish ( - OFONOOrgOfonoPhonesimManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_phonesim_manager_call_add_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - const gchar *arg_name, - const gchar *arg_address, - const gchar *arg_port, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_phonesim_manager_call_remove_all ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_phonesim_manager_call_remove_all_finish ( - OFONOOrgOfonoPhonesimManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_phonesim_manager_call_remove_all_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_phonesim_manager_call_reset ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_org_ofono_phonesim_manager_call_reset_finish ( - OFONOOrgOfonoPhonesimManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_org_ofono_phonesim_manager_call_reset_sync ( - OFONOOrgOfonoPhonesimManager *proxy, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY (ofono_org_ofono_phonesim_manager_proxy_get_type ()) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxy)) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass)) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY, OFONOOrgOfonoPhonesimManagerProxyClass)) -#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY)) -#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_PROXY)) - -typedef struct _OFONOOrgOfonoPhonesimManagerProxy OFONOOrgOfonoPhonesimManagerProxy; -typedef struct _OFONOOrgOfonoPhonesimManagerProxyClass OFONOOrgOfonoPhonesimManagerProxyClass; -typedef struct _OFONOOrgOfonoPhonesimManagerProxyPrivate OFONOOrgOfonoPhonesimManagerProxyPrivate; - -struct _OFONOOrgOfonoPhonesimManagerProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOOrgOfonoPhonesimManagerProxyPrivate *priv; -}; - -struct _OFONOOrgOfonoPhonesimManagerProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_org_ofono_phonesim_manager_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoPhonesimManagerProxy, g_object_unref) -#endif - -void ofono_org_ofono_phonesim_manager_proxy_new ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void ofono_org_ofono_phonesim_manager_proxy_new_for_bus ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_proxy_new_for_bus_sync ( - GBusType bus_type, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -/* ---- */ - -#define OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON (ofono_org_ofono_phonesim_manager_skeleton_get_type ()) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeleton)) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass)) -#define OFONO_ORG_OFONO_PHONESIM_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON, OFONOOrgOfonoPhonesimManagerSkeletonClass)) -#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON)) -#define OFONO_IS_ORG_OFONO_PHONESIM_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_ORG_OFONO_PHONESIM_MANAGER_SKELETON)) - -typedef struct _OFONOOrgOfonoPhonesimManagerSkeleton OFONOOrgOfonoPhonesimManagerSkeleton; -typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonClass OFONOOrgOfonoPhonesimManagerSkeletonClass; -typedef struct _OFONOOrgOfonoPhonesimManagerSkeletonPrivate OFONOOrgOfonoPhonesimManagerSkeletonPrivate; - -struct _OFONOOrgOfonoPhonesimManagerSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOOrgOfonoPhonesimManagerSkeletonPrivate *priv; -}; - -struct _OFONOOrgOfonoPhonesimManagerSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_org_ofono_phonesim_manager_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOOrgOfonoPhonesimManagerSkeleton, g_object_unref) -#endif - -OFONOOrgOfonoPhonesimManager *ofono_org_ofono_phonesim_manager_skeleton_new (void); - - -/* ---- */ - -#define OFONO_TYPE_OBJECT (ofono_object_get_type ()) -#define OFONO_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT, OFONOObject)) -#define OFONO_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT)) -#define OFONO_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_TYPE_OBJECT, OFONOObject)) - -struct _OFONOObject; -typedef struct _OFONOObject OFONOObject; -typedef struct _OFONOObjectIface OFONOObjectIface; - -struct _OFONOObjectIface -{ - GTypeInterface parent_iface; -}; - -GType ofono_object_get_type (void) G_GNUC_CONST; - -OFONOOrgFreedesktopDBusIntrospectable *ofono_object_get_org_freedesktop_dbus_introspectable (OFONOObject *object); -OFONOOrgOfonoManager *ofono_object_get_org_ofono_manager (OFONOObject *object); -OFONOOrgOfonoHandsfreeAudioManager *ofono_object_get_org_ofono_handsfree_audio_manager (OFONOObject *object); -OFONOOrgOfonoPhonesimManager *ofono_object_get_org_ofono_phonesim_manager (OFONOObject *object); -OFONOOrgFreedesktopDBusIntrospectable *ofono_object_peek_org_freedesktop_dbus_introspectable (OFONOObject *object); -OFONOOrgOfonoManager *ofono_object_peek_org_ofono_manager (OFONOObject *object); -OFONOOrgOfonoHandsfreeAudioManager *ofono_object_peek_org_ofono_handsfree_audio_manager (OFONOObject *object); -OFONOOrgOfonoPhonesimManager *ofono_object_peek_org_ofono_phonesim_manager (OFONOObject *object); - -#define OFONO_TYPE_OBJECT_PROXY (ofono_object_proxy_get_type ()) -#define OFONO_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxy)) -#define OFONO_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass)) -#define OFONO_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_PROXY, OFONOObjectProxyClass)) -#define OFONO_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_PROXY)) -#define OFONO_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_PROXY)) - -typedef struct _OFONOObjectProxy OFONOObjectProxy; -typedef struct _OFONOObjectProxyClass OFONOObjectProxyClass; -typedef struct _OFONOObjectProxyPrivate OFONOObjectProxyPrivate; - -struct _OFONOObjectProxy -{ - /*< private >*/ - GDBusObjectProxy parent_instance; - OFONOObjectProxyPrivate *priv; -}; - -struct _OFONOObjectProxyClass -{ - GDBusObjectProxyClass parent_class; -}; - -GType ofono_object_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectProxy, g_object_unref) -#endif - -OFONOObjectProxy *ofono_object_proxy_new (GDBusConnection *connection, const gchar *object_path); - -#define OFONO_TYPE_OBJECT_SKELETON (ofono_object_skeleton_get_type ()) -#define OFONO_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeleton)) -#define OFONO_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass)) -#define OFONO_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_SKELETON, OFONOObjectSkeletonClass)) -#define OFONO_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_SKELETON)) -#define OFONO_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_SKELETON)) - -typedef struct _OFONOObjectSkeleton OFONOObjectSkeleton; -typedef struct _OFONOObjectSkeletonClass OFONOObjectSkeletonClass; -typedef struct _OFONOObjectSkeletonPrivate OFONOObjectSkeletonPrivate; - -struct _OFONOObjectSkeleton -{ - /*< private >*/ - GDBusObjectSkeleton parent_instance; - OFONOObjectSkeletonPrivate *priv; -}; - -struct _OFONOObjectSkeletonClass -{ - GDBusObjectSkeletonClass parent_class; -}; - -GType ofono_object_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectSkeleton, g_object_unref) -#endif - -OFONOObjectSkeleton *ofono_object_skeleton_new (const gchar *object_path); -void ofono_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOObjectSkeleton *object, OFONOOrgFreedesktopDBusIntrospectable *interface_); -void ofono_object_skeleton_set_org_ofono_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoManager *interface_); -void ofono_object_skeleton_set_org_ofono_handsfree_audio_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoHandsfreeAudioManager *interface_); -void ofono_object_skeleton_set_org_ofono_phonesim_manager (OFONOObjectSkeleton *object, OFONOOrgOfonoPhonesimManager *interface_); - -/* ---- */ - -#define OFONO_TYPE_OBJECT_MANAGER_CLIENT (ofono_object_manager_client_get_type ()) -#define OFONO_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClient)) -#define OFONO_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass)) -#define OFONO_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT, OFONOObjectManagerClientClass)) -#define OFONO_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_TYPE_OBJECT_MANAGER_CLIENT)) -#define OFONO_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_TYPE_OBJECT_MANAGER_CLIENT)) - -typedef struct _OFONOObjectManagerClient OFONOObjectManagerClient; -typedef struct _OFONOObjectManagerClientClass OFONOObjectManagerClientClass; -typedef struct _OFONOObjectManagerClientPrivate OFONOObjectManagerClientPrivate; - -struct _OFONOObjectManagerClient -{ - /*< private >*/ - GDBusObjectManagerClient parent_instance; - OFONOObjectManagerClientPrivate *priv; -}; - -struct _OFONOObjectManagerClientClass -{ - GDBusObjectManagerClientClass parent_class; -}; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOObjectManagerClient, g_object_unref) -#endif - -GType ofono_object_manager_client_get_type (void) G_GNUC_CONST; - -GType ofono_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); - -void ofono_object_manager_client_new ( - GDBusConnection *connection, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); -GDBusObjectManager *ofono_object_manager_client_new_finish ( - GAsyncResult *res, - GError **error); -GDBusObjectManager *ofono_object_manager_client_new_sync ( - GDBusConnection *connection, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -void ofono_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); -GDBusObjectManager *ofono_object_manager_client_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -GDBusObjectManager *ofono_object_manager_client_new_for_bus_sync ( - GBusType bus_type, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - - -G_END_DECLS - -#endif /* __LIB_OFONO_H__ */ diff --git a/lib_ofono_modem.c b/lib_ofono_modem.c deleted file mode 100644 index e30eaa0..0000000 --- a/lib_ofono_modem.c +++ /dev/null @@ -1,11664 +0,0 @@ -/* - * 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; -} - - diff --git a/lib_ofono_modem.h b/lib_ofono_modem.h deleted file mode 100644 index de8f6b1..0000000 --- a/lib_ofono_modem.h +++ /dev/null @@ -1,1941 +0,0 @@ -/* - * 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. - */ - -#ifndef __LIB_OFONO_MODEM_H__ -#define __LIB_OFONO_MODEM_H__ - -#include - -G_BEGIN_DECLS - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.freedesktop.DBus.Introspectable */ - -#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE (ofono_modem_org_freedesktop_dbus_introspectable_get_type ()) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOMODEMOrgFreedesktopDBusIntrospectable)) -#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE)) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE, OFONOMODEMOrgFreedesktopDBusIntrospectableIface)) - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectable; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectable OFONOMODEMOrgFreedesktopDBusIntrospectable; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableIface OFONOMODEMOrgFreedesktopDBusIntrospectableIface; - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectableIface -{ - GTypeInterface parent_iface; - - gboolean (*handle_introspect) ( - OFONOMODEMOrgFreedesktopDBusIntrospectable *object, - GDBusMethodInvocation *invocation); - -}; - -GType ofono_modem_org_freedesktop_dbus_introspectable_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_freedesktop_dbus_introspectable_interface_info (void); -guint ofono_modem_org_freedesktop_dbus_introspectable_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_freedesktop_dbus_introspectable_complete_introspect ( - OFONOMODEMOrgFreedesktopDBusIntrospectable *object, - GDBusMethodInvocation *invocation, - const gchar *xml); - - - -/* D-Bus method calls: */ -void ofono_modem_org_freedesktop_dbus_introspectable_call_introspect ( - OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_finish ( - OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, - gchar **out_xml, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_freedesktop_dbus_introspectable_call_introspect_sync ( - OFONOMODEMOrgFreedesktopDBusIntrospectable *proxy, - gchar **out_xml, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY (ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_type ()) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxy)) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass)) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY, OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass)) -#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) -#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_PROXY)) - -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxy OFONOMODEMOrgFreedesktopDBusIntrospectableProxy; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate; - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgFreedesktopDBusIntrospectableProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectableProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_freedesktop_dbus_introspectable_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgFreedesktopDBusIntrospectableProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_finish ( - GAsyncResult *res, - GError **error); -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); - -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); -OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON (ofono_modem_org_freedesktop_dbus_introspectable_skeleton_get_type ()) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton)) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass)) -#define OFONO_MODEM_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON, OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass)) -#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) -#define OFONO_MODEM_IS_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_FREEDESKTOP_DBUS_INTROSPECTABLE_SKELETON)) - -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass; -typedef struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate; - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgFreedesktopDBusIntrospectableSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_freedesktop_dbus_introspectable_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgFreedesktopDBusIntrospectableSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_org_freedesktop_dbus_introspectable_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.Modem */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM (ofono_modem_org_ofono_modem_get_type ()) -#define OFONO_MODEM_ORG_OFONO_MODEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM, OFONOMODEMOrgOfonoModem)) -#define OFONO_MODEM_IS_ORG_OFONO_MODEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM)) -#define OFONO_MODEM_ORG_OFONO_MODEM_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM, OFONOMODEMOrgOfonoModemIface)) - -struct _OFONOMODEMOrgOfonoModem; -typedef struct _OFONOMODEMOrgOfonoModem OFONOMODEMOrgOfonoModem; -typedef struct _OFONOMODEMOrgOfonoModemIface OFONOMODEMOrgOfonoModemIface; - -struct _OFONOMODEMOrgOfonoModemIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_properties) ( - OFONOMODEMOrgOfonoModem *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_set_property) ( - OFONOMODEMOrgOfonoModem *object, - GDBusMethodInvocation *invocation, - const gchar *arg_property, - GVariant *arg_value); - - void (*property_changed) ( - OFONOMODEMOrgOfonoModem *object, - const gchar *arg_name, - GVariant *arg_value); - -}; - -GType ofono_modem_org_ofono_modem_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_modem_interface_info (void); -guint ofono_modem_org_ofono_modem_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_modem_complete_get_properties ( - OFONOMODEMOrgOfonoModem *object, - GDBusMethodInvocation *invocation, - GVariant *properties); - -void ofono_modem_org_ofono_modem_complete_set_property ( - OFONOMODEMOrgOfonoModem *object, - GDBusMethodInvocation *invocation); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_modem_emit_property_changed ( - OFONOMODEMOrgOfonoModem *object, - const gchar *arg_name, - GVariant *arg_value); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_modem_call_get_properties ( - OFONOMODEMOrgOfonoModem *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_modem_call_get_properties_finish ( - OFONOMODEMOrgOfonoModem *proxy, - GVariant **out_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_modem_call_get_properties_sync ( - OFONOMODEMOrgOfonoModem *proxy, - GVariant **out_properties, - GCancellable *cancellable, - GError **error); - -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); - -gboolean ofono_modem_org_ofono_modem_call_set_property_finish ( - OFONOMODEMOrgOfonoModem *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_modem_call_set_property_sync ( - OFONOMODEMOrgOfonoModem *proxy, - const gchar *arg_property, - GVariant *arg_value, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY (ofono_modem_org_ofono_modem_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxy)) -#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxyClass)) -#define OFONO_MODEM_ORG_OFONO_MODEM_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY, OFONOMODEMOrgOfonoModemProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_MODEM_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_MODEM_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoModemProxy OFONOMODEMOrgOfonoModemProxy; -typedef struct _OFONOMODEMOrgOfonoModemProxyClass OFONOMODEMOrgOfonoModemProxyClass; -typedef struct _OFONOMODEMOrgOfonoModemProxyPrivate OFONOMODEMOrgOfonoModemProxyPrivate; - -struct _OFONOMODEMOrgOfonoModemProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoModemProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoModemProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_modem_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoModemProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -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); -OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON (ofono_modem_org_ofono_modem_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeleton)) -#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_MODEM_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON, OFONOMODEMOrgOfonoModemSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_MODEM_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_MODEM_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_MODEM_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoModemSkeleton OFONOMODEMOrgOfonoModemSkeleton; -typedef struct _OFONOMODEMOrgOfonoModemSkeletonClass OFONOMODEMOrgOfonoModemSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoModemSkeletonPrivate OFONOMODEMOrgOfonoModemSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoModemSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoModemSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoModemSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_modem_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoModemSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoModem *ofono_modem_org_ofono_modem_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.NetworkTime */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME (ofono_modem_org_ofono_network_time_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, OFONOMODEMOrgOfonoNetworkTime)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME, OFONOMODEMOrgOfonoNetworkTimeIface)) - -struct _OFONOMODEMOrgOfonoNetworkTime; -typedef struct _OFONOMODEMOrgOfonoNetworkTime OFONOMODEMOrgOfonoNetworkTime; -typedef struct _OFONOMODEMOrgOfonoNetworkTimeIface OFONOMODEMOrgOfonoNetworkTimeIface; - -struct _OFONOMODEMOrgOfonoNetworkTimeIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_network_time) ( - OFONOMODEMOrgOfonoNetworkTime *object, - GDBusMethodInvocation *invocation); - - void (*network_time_changed) ( - OFONOMODEMOrgOfonoNetworkTime *object, - GVariant *arg_time); - -}; - -GType ofono_modem_org_ofono_network_time_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_network_time_interface_info (void); -guint ofono_modem_org_ofono_network_time_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_network_time_complete_get_network_time ( - OFONOMODEMOrgOfonoNetworkTime *object, - GDBusMethodInvocation *invocation, - GVariant *time); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_network_time_emit_network_time_changed ( - OFONOMODEMOrgOfonoNetworkTime *object, - GVariant *arg_time); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_network_time_call_get_network_time ( - OFONOMODEMOrgOfonoNetworkTime *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_network_time_call_get_network_time_finish ( - OFONOMODEMOrgOfonoNetworkTime *proxy, - GVariant **out_time, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_network_time_call_get_network_time_sync ( - OFONOMODEMOrgOfonoNetworkTime *proxy, - GVariant **out_time, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY (ofono_modem_org_ofono_network_time_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxy)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxyClass)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY, OFONOMODEMOrgOfonoNetworkTimeProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxy OFONOMODEMOrgOfonoNetworkTimeProxy; -typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxyClass OFONOMODEMOrgOfonoNetworkTimeProxyClass; -typedef struct _OFONOMODEMOrgOfonoNetworkTimeProxyPrivate OFONOMODEMOrgOfonoNetworkTimeProxyPrivate; - -struct _OFONOMODEMOrgOfonoNetworkTimeProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoNetworkTimeProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoNetworkTimeProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_network_time_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkTimeProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_proxy_new_finish ( - GAsyncResult *res, - GError **error); -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); - -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); -OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON (ofono_modem_org_ofono_network_time_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeleton)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_TIME_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON, OFONOMODEMOrgOfonoNetworkTimeSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_TIME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_TIME_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeleton OFONOMODEMOrgOfonoNetworkTimeSkeleton; -typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonClass OFONOMODEMOrgOfonoNetworkTimeSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoNetworkTimeSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoNetworkTimeSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoNetworkTimeSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_network_time_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkTimeSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoNetworkTime *ofono_modem_org_ofono_network_time_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.NetworkRegistration */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION (ofono_modem_org_ofono_network_registration_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, OFONOMODEMOrgOfonoNetworkRegistration)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION, OFONOMODEMOrgOfonoNetworkRegistrationIface)) - -struct _OFONOMODEMOrgOfonoNetworkRegistration; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistration OFONOMODEMOrgOfonoNetworkRegistration; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationIface OFONOMODEMOrgOfonoNetworkRegistrationIface; - -struct _OFONOMODEMOrgOfonoNetworkRegistrationIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_operators) ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_get_properties) ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_register) ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_scan) ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation); - - void (*property_changed) ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - const gchar *arg_name, - GVariant *arg_value); - -}; - -GType ofono_modem_org_ofono_network_registration_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_network_registration_interface_info (void); -guint ofono_modem_org_ofono_network_registration_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_network_registration_complete_get_properties ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation, - GVariant *properties); - -void ofono_modem_org_ofono_network_registration_complete_register ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_network_registration_complete_get_operators ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation, - GVariant *operators_with_properties); - -void ofono_modem_org_ofono_network_registration_complete_scan ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - GDBusMethodInvocation *invocation, - GVariant *operators_with_properties); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_network_registration_emit_property_changed ( - OFONOMODEMOrgOfonoNetworkRegistration *object, - const gchar *arg_name, - GVariant *arg_value); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_network_registration_call_get_properties ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_network_registration_call_get_properties_finish ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_network_registration_call_get_properties_sync ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_properties, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_network_registration_call_register ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_network_registration_call_register_finish ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_network_registration_call_register_sync ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_network_registration_call_get_operators ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_network_registration_call_get_operators_finish ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_operators_with_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_network_registration_call_get_operators_sync ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_operators_with_properties, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_network_registration_call_scan ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_network_registration_call_scan_finish ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_operators_with_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_network_registration_call_scan_sync ( - OFONOMODEMOrgOfonoNetworkRegistration *proxy, - GVariant **out_operators_with_properties, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY (ofono_modem_org_ofono_network_registration_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxy)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxyClass)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY, OFONOMODEMOrgOfonoNetworkRegistrationProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxy OFONOMODEMOrgOfonoNetworkRegistrationProxy; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyClass OFONOMODEMOrgOfonoNetworkRegistrationProxyClass; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate; - -struct _OFONOMODEMOrgOfonoNetworkRegistrationProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoNetworkRegistrationProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoNetworkRegistrationProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_network_registration_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkRegistrationProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_proxy_new_finish ( - GAsyncResult *res, - GError **error); -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); - -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); -OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON (ofono_modem_org_ofono_network_registration_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeleton)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON, OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_NETWORK_REGISTRATION_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_NETWORK_REGISTRATION_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeleton OFONOMODEMOrgOfonoNetworkRegistrationSkeleton; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoNetworkRegistrationSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoNetworkRegistrationSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_network_registration_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoNetworkRegistrationSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_org_ofono_network_registration_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.Handsfree */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE (ofono_modem_org_ofono_handsfree_get_type ()) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, OFONOMODEMOrgOfonoHandsfree)) -#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE)) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE, OFONOMODEMOrgOfonoHandsfreeIface)) - -struct _OFONOMODEMOrgOfonoHandsfree; -typedef struct _OFONOMODEMOrgOfonoHandsfree OFONOMODEMOrgOfonoHandsfree; -typedef struct _OFONOMODEMOrgOfonoHandsfreeIface OFONOMODEMOrgOfonoHandsfreeIface; - -struct _OFONOMODEMOrgOfonoHandsfreeIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_properties) ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_request_phone_number) ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_set_property) ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation, - const gchar *arg_property, - GVariant *arg_value); - - void (*property_changed) ( - OFONOMODEMOrgOfonoHandsfree *object, - const gchar *arg_name, - GVariant *arg_value); - -}; - -GType ofono_modem_org_ofono_handsfree_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_handsfree_interface_info (void); -guint ofono_modem_org_ofono_handsfree_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_handsfree_complete_get_properties ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation, - GVariant *properties); - -void ofono_modem_org_ofono_handsfree_complete_set_property ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_handsfree_complete_request_phone_number ( - OFONOMODEMOrgOfonoHandsfree *object, - GDBusMethodInvocation *invocation, - const gchar *number); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_handsfree_emit_property_changed ( - OFONOMODEMOrgOfonoHandsfree *object, - const gchar *arg_name, - GVariant *arg_value); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_handsfree_call_get_properties ( - OFONOMODEMOrgOfonoHandsfree *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_handsfree_call_get_properties_finish ( - OFONOMODEMOrgOfonoHandsfree *proxy, - GVariant **out_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_handsfree_call_get_properties_sync ( - OFONOMODEMOrgOfonoHandsfree *proxy, - GVariant **out_properties, - GCancellable *cancellable, - GError **error); - -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); - -gboolean ofono_modem_org_ofono_handsfree_call_set_property_finish ( - OFONOMODEMOrgOfonoHandsfree *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_handsfree_call_set_property_sync ( - OFONOMODEMOrgOfonoHandsfree *proxy, - const gchar *arg_property, - GVariant *arg_value, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_handsfree_call_request_phone_number ( - OFONOMODEMOrgOfonoHandsfree *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_handsfree_call_request_phone_number_finish ( - OFONOMODEMOrgOfonoHandsfree *proxy, - gchar **out_number, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_handsfree_call_request_phone_number_sync ( - OFONOMODEMOrgOfonoHandsfree *proxy, - gchar **out_number, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY (ofono_modem_org_ofono_handsfree_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxy)) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxyClass)) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY, OFONOMODEMOrgOfonoHandsfreeProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoHandsfreeProxy OFONOMODEMOrgOfonoHandsfreeProxy; -typedef struct _OFONOMODEMOrgOfonoHandsfreeProxyClass OFONOMODEMOrgOfonoHandsfreeProxyClass; -typedef struct _OFONOMODEMOrgOfonoHandsfreeProxyPrivate OFONOMODEMOrgOfonoHandsfreeProxyPrivate; - -struct _OFONOMODEMOrgOfonoHandsfreeProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoHandsfreeProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoHandsfreeProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_handsfree_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoHandsfreeProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_finish ( - GAsyncResult *res, - GError **error); -OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_sync ( - GDBusConnection *connection, - GDBusProxyFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -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); -OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON (ofono_modem_org_ofono_handsfree_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeleton)) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_HANDSFREE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON, OFONOMODEMOrgOfonoHandsfreeSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_HANDSFREE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_HANDSFREE_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeleton OFONOMODEMOrgOfonoHandsfreeSkeleton; -typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeletonClass OFONOMODEMOrgOfonoHandsfreeSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoHandsfreeSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoHandsfreeSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoHandsfreeSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_handsfree_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoHandsfreeSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoHandsfree *ofono_modem_org_ofono_handsfree_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.CallVolume */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME (ofono_modem_org_ofono_call_volume_get_type ()) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, OFONOMODEMOrgOfonoCallVolume)) -#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME)) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME, OFONOMODEMOrgOfonoCallVolumeIface)) - -struct _OFONOMODEMOrgOfonoCallVolume; -typedef struct _OFONOMODEMOrgOfonoCallVolume OFONOMODEMOrgOfonoCallVolume; -typedef struct _OFONOMODEMOrgOfonoCallVolumeIface OFONOMODEMOrgOfonoCallVolumeIface; - -struct _OFONOMODEMOrgOfonoCallVolumeIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_get_properties) ( - OFONOMODEMOrgOfonoCallVolume *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_set_property) ( - OFONOMODEMOrgOfonoCallVolume *object, - GDBusMethodInvocation *invocation, - const gchar *arg_property, - GVariant *arg_value); - - void (*property_changed) ( - OFONOMODEMOrgOfonoCallVolume *object, - const gchar *arg_property, - GVariant *arg_value); - -}; - -GType ofono_modem_org_ofono_call_volume_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_call_volume_interface_info (void); -guint ofono_modem_org_ofono_call_volume_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_call_volume_complete_get_properties ( - OFONOMODEMOrgOfonoCallVolume *object, - GDBusMethodInvocation *invocation, - GVariant *properties); - -void ofono_modem_org_ofono_call_volume_complete_set_property ( - OFONOMODEMOrgOfonoCallVolume *object, - GDBusMethodInvocation *invocation); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_call_volume_emit_property_changed ( - OFONOMODEMOrgOfonoCallVolume *object, - const gchar *arg_property, - GVariant *arg_value); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_call_volume_call_get_properties ( - OFONOMODEMOrgOfonoCallVolume *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_call_volume_call_get_properties_finish ( - OFONOMODEMOrgOfonoCallVolume *proxy, - GVariant **out_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_call_volume_call_get_properties_sync ( - OFONOMODEMOrgOfonoCallVolume *proxy, - GVariant **out_properties, - GCancellable *cancellable, - GError **error); - -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); - -gboolean ofono_modem_org_ofono_call_volume_call_set_property_finish ( - OFONOMODEMOrgOfonoCallVolume *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_call_volume_call_set_property_sync ( - OFONOMODEMOrgOfonoCallVolume *proxy, - const gchar *arg_property, - GVariant *arg_value, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY (ofono_modem_org_ofono_call_volume_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxy)) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxyClass)) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY, OFONOMODEMOrgOfonoCallVolumeProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoCallVolumeProxy OFONOMODEMOrgOfonoCallVolumeProxy; -typedef struct _OFONOMODEMOrgOfonoCallVolumeProxyClass OFONOMODEMOrgOfonoCallVolumeProxyClass; -typedef struct _OFONOMODEMOrgOfonoCallVolumeProxyPrivate OFONOMODEMOrgOfonoCallVolumeProxyPrivate; - -struct _OFONOMODEMOrgOfonoCallVolumeProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoCallVolumeProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoCallVolumeProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_call_volume_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoCallVolumeProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_proxy_new_finish ( - GAsyncResult *res, - GError **error); -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); - -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); -OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON (ofono_modem_org_ofono_call_volume_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeleton)) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_CALL_VOLUME_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON, OFONOMODEMOrgOfonoCallVolumeSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_CALL_VOLUME_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_CALL_VOLUME_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeleton OFONOMODEMOrgOfonoCallVolumeSkeleton; -typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeletonClass OFONOMODEMOrgOfonoCallVolumeSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoCallVolumeSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoCallVolumeSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoCallVolumeSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_call_volume_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoCallVolumeSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoCallVolume *ofono_modem_org_ofono_call_volume_skeleton_new (void); - - -/* ------------------------------------------------------------------------ */ -/* Declarations for org.ofono.VoiceCallManager */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER (ofono_modem_org_ofono_voice_call_manager_get_type ()) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, OFONOMODEMOrgOfonoVoiceCallManager)) -#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER)) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER, OFONOMODEMOrgOfonoVoiceCallManagerIface)) - -struct _OFONOMODEMOrgOfonoVoiceCallManager; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManager OFONOMODEMOrgOfonoVoiceCallManager; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerIface OFONOMODEMOrgOfonoVoiceCallManagerIface; - -struct _OFONOMODEMOrgOfonoVoiceCallManagerIface -{ - GTypeInterface parent_iface; - - - gboolean (*handle_create_multiparty) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_dial) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_number, - const gchar *arg_hide_callerid); - - gboolean (*handle_get_calls) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_get_properties) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_hangup_all) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_hangup_multiparty) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_hold_and_answer) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_private_chat) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_call); - - gboolean (*handle_release_and_answer) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_release_and_swap) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_send_tones) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *arg_SendTones); - - gboolean (*handle_swap_calls) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - gboolean (*handle_transfer) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - - void (*barring_active) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_type); - - void (*call_added) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_path, - GVariant *arg_properties); - - void (*call_removed) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_path); - - void (*forwarded) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_type); - - void (*property_changed) ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_name, - GVariant *arg_value); - -}; - -GType ofono_modem_org_ofono_voice_call_manager_get_type (void) G_GNUC_CONST; - -GDBusInterfaceInfo *ofono_modem_org_ofono_voice_call_manager_interface_info (void); -guint ofono_modem_org_ofono_voice_call_manager_override_properties (GObjectClass *klass, guint property_id_begin); - - -/* D-Bus method call completion functions: */ -void ofono_modem_org_ofono_voice_call_manager_complete_get_properties ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - GVariant *properties); - -void ofono_modem_org_ofono_voice_call_manager_complete_dial ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *path); - -void ofono_modem_org_ofono_voice_call_manager_complete_transfer ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_swap_calls ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_release_and_answer ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_release_and_swap ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_hold_and_answer ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_hangup_all ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_private_chat ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *const *calls); - -void ofono_modem_org_ofono_voice_call_manager_complete_create_multiparty ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - const gchar *calls); - -void ofono_modem_org_ofono_voice_call_manager_complete_hangup_multiparty ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_send_tones ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation); - -void ofono_modem_org_ofono_voice_call_manager_complete_get_calls ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - GDBusMethodInvocation *invocation, - GVariant *calls_with_properties); - - - -/* D-Bus signal emissions functions: */ -void ofono_modem_org_ofono_voice_call_manager_emit_forwarded ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_type); - -void ofono_modem_org_ofono_voice_call_manager_emit_barring_active ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_type); - -void ofono_modem_org_ofono_voice_call_manager_emit_property_changed ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_name, - GVariant *arg_value); - -void ofono_modem_org_ofono_voice_call_manager_emit_call_added ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_path, - GVariant *arg_properties); - -void ofono_modem_org_ofono_voice_call_manager_emit_call_removed ( - OFONOMODEMOrgOfonoVoiceCallManager *object, - const gchar *arg_path); - - - -/* D-Bus method calls: */ -void ofono_modem_org_ofono_voice_call_manager_call_get_properties ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_get_properties_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GVariant **out_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_get_properties_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GVariant **out_properties, - GCancellable *cancellable, - GError **error); - -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); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_dial_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - gchar **out_path, - GAsyncResult *res, - GError **error); - -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); - -void ofono_modem_org_ofono_voice_call_manager_call_transfer ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_transfer_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_transfer_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_swap_calls ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_swap_calls_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_swap_calls_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_release_and_answer ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_answer_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_release_and_swap ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_release_and_swap_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hold_and_answer_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_hangup_all ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_all_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_all_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_private_chat ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - const gchar *arg_call, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_private_chat_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - gchar ***out_calls, - GAsyncResult *res, - GError **error); - -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); - -void ofono_modem_org_ofono_voice_call_manager_call_create_multiparty ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - gchar **out_calls, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_create_multiparty_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - gchar **out_calls, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_hangup_multiparty_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_send_tones ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - const gchar *arg_SendTones, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_send_tones_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_send_tones_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - const gchar *arg_SendTones, - GCancellable *cancellable, - GError **error); - -void ofono_modem_org_ofono_voice_call_manager_call_get_calls ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GCancellable *cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_get_calls_finish ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GVariant **out_calls_with_properties, - GAsyncResult *res, - GError **error); - -gboolean ofono_modem_org_ofono_voice_call_manager_call_get_calls_sync ( - OFONOMODEMOrgOfonoVoiceCallManager *proxy, - GVariant **out_calls_with_properties, - GCancellable *cancellable, - GError **error); - - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY (ofono_modem_org_ofono_voice_call_manager_proxy_get_type ()) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxy)) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxyClass)) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY, OFONOMODEMOrgOfonoVoiceCallManagerProxyClass)) -#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY)) -#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_PROXY)) - -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxy OFONOMODEMOrgOfonoVoiceCallManagerProxy; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyClass OFONOMODEMOrgOfonoVoiceCallManagerProxyClass; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate; - -struct _OFONOMODEMOrgOfonoVoiceCallManagerProxy -{ - /*< private >*/ - GDBusProxy parent_instance; - OFONOMODEMOrgOfonoVoiceCallManagerProxyPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoVoiceCallManagerProxyClass -{ - GDBusProxyClass parent_class; -}; - -GType ofono_modem_org_ofono_voice_call_manager_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoVoiceCallManagerProxy, g_object_unref) -#endif - -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); -OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_proxy_new_finish ( - GAsyncResult *res, - GError **error); -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); - -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); -OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_proxy_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON (ofono_modem_org_ofono_voice_call_manager_skeleton_get_type ()) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeleton)) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass)) -#define OFONO_MODEM_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON, OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass)) -#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON)) -#define OFONO_MODEM_IS_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_ORG_OFONO_VOICE_CALL_MANAGER_SKELETON)) - -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeleton OFONOMODEMOrgOfonoVoiceCallManagerSkeleton; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass; -typedef struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate; - -struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeleton -{ - /*< private >*/ - GDBusInterfaceSkeleton parent_instance; - OFONOMODEMOrgOfonoVoiceCallManagerSkeletonPrivate *priv; -}; - -struct _OFONOMODEMOrgOfonoVoiceCallManagerSkeletonClass -{ - GDBusInterfaceSkeletonClass parent_class; -}; - -GType ofono_modem_org_ofono_voice_call_manager_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMOrgOfonoVoiceCallManagerSkeleton, g_object_unref) -#endif - -OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_org_ofono_voice_call_manager_skeleton_new (void); - - -/* ---- */ - -#define OFONO_MODEM_TYPE_OBJECT (ofono_modem_object_get_type ()) -#define OFONO_MODEM_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT, OFONOMODEMObject)) -#define OFONO_MODEM_IS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT)) -#define OFONO_MODEM_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), OFONO_MODEM_TYPE_OBJECT, OFONOMODEMObject)) - -struct _OFONOMODEMObject; -typedef struct _OFONOMODEMObject OFONOMODEMObject; -typedef struct _OFONOMODEMObjectIface OFONOMODEMObjectIface; - -struct _OFONOMODEMObjectIface -{ - GTypeInterface parent_iface; -}; - -GType ofono_modem_object_get_type (void) G_GNUC_CONST; - -OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_get_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoModem *ofono_modem_object_get_org_ofono_modem (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_get_org_ofono_network_time (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_get_org_ofono_network_registration (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_get_org_ofono_handsfree (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_get_org_ofono_call_volume (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_get_org_ofono_voice_call_manager (OFONOMODEMObject *object); -OFONOMODEMOrgFreedesktopDBusIntrospectable *ofono_modem_object_peek_org_freedesktop_dbus_introspectable (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoModem *ofono_modem_object_peek_org_ofono_modem (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoNetworkTime *ofono_modem_object_peek_org_ofono_network_time (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoNetworkRegistration *ofono_modem_object_peek_org_ofono_network_registration (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoHandsfree *ofono_modem_object_peek_org_ofono_handsfree (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoCallVolume *ofono_modem_object_peek_org_ofono_call_volume (OFONOMODEMObject *object); -OFONOMODEMOrgOfonoVoiceCallManager *ofono_modem_object_peek_org_ofono_voice_call_manager (OFONOMODEMObject *object); - -#define OFONO_MODEM_TYPE_OBJECT_PROXY (ofono_modem_object_proxy_get_type ()) -#define OFONO_MODEM_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxy)) -#define OFONO_MODEM_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxyClass)) -#define OFONO_MODEM_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_PROXY, OFONOMODEMObjectProxyClass)) -#define OFONO_MODEM_IS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_PROXY)) -#define OFONO_MODEM_IS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_PROXY)) - -typedef struct _OFONOMODEMObjectProxy OFONOMODEMObjectProxy; -typedef struct _OFONOMODEMObjectProxyClass OFONOMODEMObjectProxyClass; -typedef struct _OFONOMODEMObjectProxyPrivate OFONOMODEMObjectProxyPrivate; - -struct _OFONOMODEMObjectProxy -{ - /*< private >*/ - GDBusObjectProxy parent_instance; - OFONOMODEMObjectProxyPrivate *priv; -}; - -struct _OFONOMODEMObjectProxyClass -{ - GDBusObjectProxyClass parent_class; -}; - -GType ofono_modem_object_proxy_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectProxy, g_object_unref) -#endif - -OFONOMODEMObjectProxy *ofono_modem_object_proxy_new (GDBusConnection *connection, const gchar *object_path); - -#define OFONO_MODEM_TYPE_OBJECT_SKELETON (ofono_modem_object_skeleton_get_type ()) -#define OFONO_MODEM_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeleton)) -#define OFONO_MODEM_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeletonClass)) -#define OFONO_MODEM_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON, OFONOMODEMObjectSkeletonClass)) -#define OFONO_MODEM_IS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_SKELETON)) -#define OFONO_MODEM_IS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_SKELETON)) - -typedef struct _OFONOMODEMObjectSkeleton OFONOMODEMObjectSkeleton; -typedef struct _OFONOMODEMObjectSkeletonClass OFONOMODEMObjectSkeletonClass; -typedef struct _OFONOMODEMObjectSkeletonPrivate OFONOMODEMObjectSkeletonPrivate; - -struct _OFONOMODEMObjectSkeleton -{ - /*< private >*/ - GDBusObjectSkeleton parent_instance; - OFONOMODEMObjectSkeletonPrivate *priv; -}; - -struct _OFONOMODEMObjectSkeletonClass -{ - GDBusObjectSkeletonClass parent_class; -}; - -GType ofono_modem_object_skeleton_get_type (void) G_GNUC_CONST; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectSkeleton, g_object_unref) -#endif - -OFONOMODEMObjectSkeleton *ofono_modem_object_skeleton_new (const gchar *object_path); -void ofono_modem_object_skeleton_set_org_freedesktop_dbus_introspectable (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgFreedesktopDBusIntrospectable *interface_); -void ofono_modem_object_skeleton_set_org_ofono_modem (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoModem *interface_); -void ofono_modem_object_skeleton_set_org_ofono_network_time (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkTime *interface_); -void ofono_modem_object_skeleton_set_org_ofono_network_registration (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoNetworkRegistration *interface_); -void ofono_modem_object_skeleton_set_org_ofono_handsfree (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoHandsfree *interface_); -void ofono_modem_object_skeleton_set_org_ofono_call_volume (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoCallVolume *interface_); -void ofono_modem_object_skeleton_set_org_ofono_voice_call_manager (OFONOMODEMObjectSkeleton *object, OFONOMODEMOrgOfonoVoiceCallManager *interface_); - -/* ---- */ - -#define OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT (ofono_modem_object_manager_client_get_type ()) -#define OFONO_MODEM_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClient)) -#define OFONO_MODEM_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClientClass)) -#define OFONO_MODEM_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT, OFONOMODEMObjectManagerClientClass)) -#define OFONO_MODEM_IS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT)) -#define OFONO_MODEM_IS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), OFONO_MODEM_TYPE_OBJECT_MANAGER_CLIENT)) - -typedef struct _OFONOMODEMObjectManagerClient OFONOMODEMObjectManagerClient; -typedef struct _OFONOMODEMObjectManagerClientClass OFONOMODEMObjectManagerClientClass; -typedef struct _OFONOMODEMObjectManagerClientPrivate OFONOMODEMObjectManagerClientPrivate; - -struct _OFONOMODEMObjectManagerClient -{ - /*< private >*/ - GDBusObjectManagerClient parent_instance; - OFONOMODEMObjectManagerClientPrivate *priv; -}; - -struct _OFONOMODEMObjectManagerClientClass -{ - GDBusObjectManagerClientClass parent_class; -}; - -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (OFONOMODEMObjectManagerClient, g_object_unref) -#endif - -GType ofono_modem_object_manager_client_get_type (void) G_GNUC_CONST; - -GType ofono_modem_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager, const gchar *object_path, const gchar *interface_name, gpointer user_data); - -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); -GDBusObjectManager *ofono_modem_object_manager_client_new_finish ( - GAsyncResult *res, - GError **error); -GDBusObjectManager *ofono_modem_object_manager_client_new_sync ( - GDBusConnection *connection, - GDBusObjectManagerClientFlags flags, - const gchar *name, - const gchar *object_path, - GCancellable *cancellable, - GError **error); - -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); -GDBusObjectManager *ofono_modem_object_manager_client_new_for_bus_finish ( - GAsyncResult *res, - GError **error); -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); - - -G_END_DECLS - -#endif /* __LIB_OFONO_MODEM_H__ */ diff --git a/ofono-client.c b/ofono-client.c deleted file mode 100644 index 4b17dab..0000000 --- a/ofono-client.c +++ /dev/null @@ -1,672 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "lib_ofono.h" -#include "lib_ofono_modem.h" -#include "ofono-client.h" - -#ifdef OFONO_THREAD -static GMainLoop *OfonoLoop = NULL; -#endif - -static stOfonoManager OfonoManager = { 0 }; -static Ofono_RegisterCallback_t ofono_RegisterCallback = { 0 }; - - -/* ------ LOCAL FUNCTIONS --------- */ -static OFONOMODEMOrgOfonoModem* modem_create_proxy(struct ofono_modem *modem); - - -/* - * make a copy of each element - * And, to entirely free the new btd_device, you could do: modem_free - */ -struct ofono_modem *modem_copy(struct ofono_modem* modem) -{ - struct ofono_modem * temp; - - if (NULL == modem) { - return NULL; - } - - temp = g_malloc0(sizeof(struct ofono_modem)); - temp->path = g_strdup(modem->path); - - temp->proxy = g_object_ref (modem->proxy); - - temp->powered = modem->powered; - - return temp; -} - -/* - * Frees all of the memory - */ -static void modem_free(struct ofono_modem* modem) -{ - - if (NULL == modem) { - return ; - } - - if (modem->path) { - g_free(modem->path); - modem->path = NULL; - } - - if (modem->proxy){ - g_object_unref(modem->proxy); - modem->proxy = NULL; - } - - g_free(modem); - -} - -#if 0 -//debug print -void modem_print(struct ofono_modem *modem) -{ - gchar *s; - g_print("device %p\n",modem); - g_print("path\t\t:%s\n",modem->path); - g_print("powered\t\t:%d\n",modem->powered); - -} -#endif - -static int modem_path_cmp(struct ofono_modem * modem, const gchar* path ) -{ - return g_strcmp0 (modem->path, path); -} - -static void modem_list_lock(void) -{ - g_mutex_lock(&(OfonoManager.m)); -} - -static void modem_list_unlock(void) -{ - g_mutex_unlock(&(OfonoManager.m)); -} - -#if 0 -//debug print -void modem_list_print() -{ - GSList * temp = OfonoManager.modem; - while (temp) { - struct ofono_modem *modem = temp->data; - temp = temp->next; - g_print("----------------------------------------\n"); - modem_print(modem); - } - g_print("----------------------------------------\n"); -} -#endif - - -/* - * remove all the devices -*/ -static void modem_list_cleanup() -{ - LOGD("\n"); - GSList * temp = OfonoManager.modem; - while (temp) { - struct ofono_modem *modem = temp->data; - temp = temp->next; - - OfonoManager.modem = g_slist_remove_all(OfonoManager.modem, - modem); - - modem_free(modem); - } -} - -/* - * search ofono modem by path - * Returns the first found btd_device or NULL if it is not found - */ -static struct ofono_modem *modem_list_find_modem_by_path(const char* path) -{ - //LOGD("path%s\n",path); - GSList * temp = NULL; - - temp = g_slist_find_custom (OfonoManager.modem, path, - (GCompareFunc)modem_path_cmp); - - if (temp) { - return temp->data; - } - - return NULL; -} - -static void on_modem_property_changed (OFONOMODEMOrgOfonoModem* object, - gchar* property, - GVariant *value, - gpointer userdata) -{ -#ifdef _DEBUG_PRINT_DBUS - gchar *s; - - g_print ("%s\n",property); - s = g_variant_print (value, TRUE); - g_print (" %s\n", s); - g_free (s); -#endif - - struct ofono_modem *modem; - - - if (NULL==property || NULL==value || NULL==userdata){ - LOGD(" receive null data\n"); - return; - } - - modem = userdata; - - if (0 == g_strcmp0(property, "Powered")) - { - - GVariant *temp = g_variant_get_variant (value); - //g_print ("update\n"); - gboolean new_value; - //gboolean old_value; - g_variant_get(temp, "b", &new_value ); - g_variant_unref(temp); - LOGD("Powered %d\n",new_value); - //old_value = modem->powered; - modem->powered = new_value; - - if (NULL != ofono_RegisterCallback.modem_properties_changed) - { - ofono_RegisterCallback.modem_properties_changed(modem); - } - } - - -} - -static void on_modem_added (OFONOOrgOfonoManager* object, - gchar* path, - GVariant *value, - gpointer userdata) -{ -#ifdef _DEBUG_PRINT_DBUS - gchar *s; - - g_print ("on_modom_added\n"); - g_print ("%s\n",path); - s = g_variant_print (value, TRUE); - g_print (" %s\n", s); - g_free (s); -#endif - - - GError *error = NULL; - - if (NULL == path) - return; - - struct ofono_modem *modem = g_malloc0(sizeof(struct ofono_modem)); - - LOGD("new modem path:%s,%p\n", path, modem); - - modem->path = g_strdup(path); - modem->proxy = modem_create_proxy(modem); - - - - GVariant *property_value = NULL; - g_variant_lookup(value, "Powered", - "*", &property_value); - - if (property_value) - { - gboolean bValue = FALSE; - g_variant_get(property_value, "b", &bValue ); - modem->powered = bValue; - - g_variant_unref (property_value); - } - - modem_list_lock(); - OfonoManager.modem = g_slist_prepend(OfonoManager.modem, modem); - modem_list_unlock(); - - if (NULL != ofono_RegisterCallback.modem_added){ - ofono_RegisterCallback.modem_added(modem); - } -} - -static void on_modem_removed (OFONOOrgOfonoManager * object, - gchar* path, - gpointer userdata) -{ -#ifdef _DEBUG_PRINT_DBUS - gchar *s; - g_print ("on_modem_removed\n"); - g_print ("%s\n",path); -#endif - - struct ofono_modem *modem = NULL; - - modem_list_lock(); - - modem = modem_list_find_modem_by_path(path); - - LOGD("remove modem path:%s,%p\n", path, modem); - - if (modem){ - - OfonoManager.modem = g_slist_remove_all(OfonoManager.modem, - modem); - - if (NULL != ofono_RegisterCallback.modem_removed) - { - ofono_RegisterCallback.modem_removed(modem); - } - - modem_free(modem); - } - - modem_list_unlock(); - -} - - -static OFONOMODEMOrgOfonoModem* modem_create_proxy(struct ofono_modem *modem) -{ - GError *error = NULL; - - if (NULL == modem) - { - return NULL; - } - - if (NULL == modem->path) - { - return NULL; - } - - modem->proxy = ofono_modem_org_ofono_modem_proxy_new_for_bus_sync ( - G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, OFONO_SERVICE, - modem->path, NULL, &error); - - if (error) - { - LOGW ("Error : %s\n", error->message); - g_error_free(error); - return NULL; - } - - g_signal_connect (modem->proxy, - "property_changed", - G_CALLBACK (on_modem_property_changed), - modem); - - return modem->proxy; - -} - - -/* - * Force Update the modem list - * Call GetModems - * Returns: 0 - success or other errors - */ -int modem_list_update() { - LOGD("\n"); - - GError *error = NULL; - GVariant *result = NULL; - GSList *newDeviceList = NULL; - - - result = g_dbus_connection_call_sync(OfonoManager.system_conn, - OFONO_SERVICE, OFONO_MANAGER_PATH, OFONO_MANAGER_INTERFACE, - "GetModems", NULL, NULL, - G_DBUS_CALL_FLAGS_NONE, DBUS_REPLY_TIMEOUT, NULL, &error); - - if (error) { - LOGW ("Error : %s\n", error->message); - g_error_free(error); - return -1; - } - - GVariant *ArrayValue = NULL; - GVariantIter *ArrayValueIter; - GVariant *Value = NULL; - - g_variant_get(result, "(*)", &ArrayValue); - - g_variant_get(ArrayValue, "a*", &ArrayValueIter); - while (g_variant_iter_loop(ArrayValueIter, "*", &Value)) { - - GVariantIter dbus_object_iter; - GVariant *dbusObjecPath; - GVariant *dbusObjecProperties; - - gchar *pObjecPath = NULL; - struct ofono_modem *modem = NULL; - - g_variant_iter_init(&dbus_object_iter, Value); - - //1st : DBus Object Path - dbusObjecPath = g_variant_iter_next_value(&dbus_object_iter); - - g_variant_get(dbusObjecPath, "o", &pObjecPath); - - LOGD("object path %s\n",pObjecPath); - - //ObjectPath is /hfp/org/bluez/hci0/dev_xx_xx_xx_xx_xx_xx - if ((41 != strlen(pObjecPath)) - || (NULL == g_strstr_len(pObjecPath, 23, - "/hfp"ADAPTER_PATH"/dev"))) { - g_free(pObjecPath); - pObjecPath = NULL; - g_variant_unref(dbusObjecPath); - continue; - } - - modem = g_malloc0(sizeof(struct ofono_modem)); - modem->path = g_strdup(pObjecPath); - g_free(pObjecPath); - pObjecPath = NULL; - g_variant_unref(dbusObjecPath); - - LOGD("Found new device%s\n",modem->path ); - - modem->proxy = modem_create_proxy(modem); - - //2nd : DBus Interfaces under Object Path - dbusObjecProperties = g_variant_iter_next_value(&dbus_object_iter); - - GVariant *property_value = NULL; - g_variant_lookup(dbusObjecProperties, "Powered", - "*", &property_value); - - if (property_value) - { - gboolean bValue = FALSE; - g_variant_get(property_value, "b", &bValue ); - modem->powered = bValue; - - g_variant_unref (property_value); - } - - g_variant_unref(dbusObjecProperties); - - //Save device to newDeviceList - newDeviceList = g_slist_prepend(newDeviceList, modem); - - } - - g_variant_iter_free(ArrayValueIter); - g_variant_unref(ArrayValue); - - g_variant_unref(result); - - - //Force update device, so clean first - modem_list_lock(); - - modem_list_cleanup(); - - OfonoManager.modem = newDeviceList; - - modem_list_unlock(); - - return 0; -} - - -/* - * init cli dbus connection - * Returns: 0 - success or other errors - */ -static int ofono_manager_connect_to_dbus(void) -{ - GError *error = NULL; - - OfonoManager.system_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); - - if (error) - { - LOGE("errr:%s",error->message); - g_error_free(error); - - return -1; - } - - OfonoManager.proxy = ofono_org_ofono_manager_proxy_new_for_bus_sync( - G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, OFONO_SERVICE, - OFONO_MANAGER_PATH, NULL, &error); - - if (error) { - LOGW("Create Ofono manager client fail\n"); - LOGW("Error:%s\n", error->message); - g_error_free(error); - - g_object_unref(OfonoManager.system_conn); - return -1; - } - - return 0; -} - -/* - * register callback function - * Returns: 0 - success or other errors - */ -static int ofono_manager_register_callback(void) -{ - - g_signal_connect (OfonoManager.proxy, - "modem-added", - G_CALLBACK (on_modem_added), - NULL); - - g_signal_connect (OfonoManager.proxy, - "modem-removed", - G_CALLBACK (on_modem_removed), - NULL); - - return 0; -} - -/* - * init dbus and register callback - */ -static int ofono_mamager_init(void) -{ - int ret = 0; - LOGD("\n"); - ret = ofono_manager_connect_to_dbus(); - - if (0 != ret){ - LOGW("init fail\n"); - return -1; - } - - g_mutex_init(&(OfonoManager.m)); - - ofono_manager_register_callback(); - modem_list_update(); - - OfonoManager.inited = TRUE; - - return 0; -} - -#ifdef AGENT_THREAD -/* - * Ofono Manager Thread - * register callback function and create a new GMainLoop structure - */ -static void *ofono_event_loop_thread() -{ - int ret = 0; - - OfonoLoop = g_main_loop_new(NULL, FALSE);; - - ret = ofono_mamager_init(); - - if (0 == ret){ - LOGD("g_main_loop_run\n"); - g_main_loop_run(OfonoLoop); - - } - - g_main_loop_unref(OfonoLoop); - LOGD("exit...\n"); -} -#endif - -/* --- PUBLIC FUNCTIONS --- */ - -/* - * Get the ofono modem "Powered" property - */ -gboolean getOfonoModemPoweredByPath (gchar* path) -{ - struct ofono_modem *modem = NULL; - gboolean powered = FALSE; - - modem_list_lock(); - - modem = modem_list_find_modem_by_path(path); - - if (modem){ - powered = modem->powered; - } - - LOGD("get modem %p by path:%s,%d\n", modem, path, powered); - - modem_list_unlock(); - - return powered; -} - - -/* - * Init the ofono manager - */ -int OfonoManagerInit(void) -{ - int ret = 0; - - LOGD("\n"); - - if (TRUE == OfonoManager.inited) - { - LOGW("Ofono Manager is already inited\n"); - return -1; - - } - -#ifdef OFONO_THREAD - pthread_t thread_id; - - pthread_create(&thread_id, NULL, ofono_event_loop_thread, NULL); - pthread_setname_np(thread_id, "ofono_manager"); - -#else - - ret = ofono_mamager_init(); - -#endif - - return ret; -} - -/* - * Quit the ofono manager - */ -int OfonoManagerQuit(void) -{ - LOGD("\n"); - - if (TRUE != OfonoManager.inited) - { - LOGW("Ofono Manager is not inited\n"); - return -1; - - } -#ifdef OFONO_THREAD - g_main_loop_quit(OfonoLoop); -#endif - - memset(&ofono_RegisterCallback, 0, sizeof(Ofono_RegisterCallback_t)); - - g_object_unref(OfonoManager.proxy); - - modem_list_lock(); - modem_list_cleanup(); - modem_list_unlock(); - - g_mutex_clear (&(OfonoManager.m)); - - g_object_unref(OfonoManager.system_conn); - - OfonoManager.inited = FALSE; - - return 0; - -} - -/* - * Register ofono Callback function - */ -void OfonoModemAPIRegister(const Ofono_RegisterCallback_t* pstRegisterCallback) -{ - LOGD("\n"); - - if (NULL != pstRegisterCallback) - { - if (NULL != pstRegisterCallback->modem_added) - { - ofono_RegisterCallback.modem_added = - pstRegisterCallback->modem_added; - } - - if (NULL != pstRegisterCallback->modem_removed) - { - ofono_RegisterCallback.modem_removed = - pstRegisterCallback->modem_removed; - } - - if (NULL != pstRegisterCallback->modem_properties_changed) - { - ofono_RegisterCallback.modem_properties_changed = - pstRegisterCallback->modem_properties_changed; - } - - } - -} - diff --git a/ofono-client.h b/ofono-client.h deleted file mode 100644 index 38ab24f..0000000 --- a/ofono-client.h +++ /dev/null @@ -1,74 +0,0 @@ -/* Copyright 2016 ALPS ELECTRIC CO., LTD. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - - -#ifndef OFONO_CLIENT_H -#define OFONO_CLIENT_H - -#include -#include -#include - -#include "lib_ofono.h" -#include "lib_ofono_modem.h" - -#include "bluetooth-manager.h" - -//#define OFONO_THREAD - -struct ofono_modem { - gchar *path; - OFONOMODEMOrgOfonoModem *proxy; - - //gboolean online; - gboolean powered; - //gboolean lockdown; - //gboolean emergency; - //GVariant *interfaces; - //GVariant *features; - //gchar *name; - //gchar *type; - -}; - -typedef struct { - gboolean inited; - GMutex m; - GSList * modem; - OFONOOrgOfonoManager *proxy; - GDBusConnection *system_conn; -} stOfonoManager; - -typedef struct tagOfono_RegisterCallback -{ - void (*modem_added)(struct ofono_modem *modem); - void (*modem_removed)(struct ofono_modem *modem); - void (*modem_properties_changed)(struct ofono_modem *modem); -}Ofono_RegisterCallback_t; - -/* --- PUBLIC FUNCTIONS --- */ -void OfonoModemAPIRegister(const Ofono_RegisterCallback_t* pstRegisterCallback); - -int OfonoManagerInit(void) ; -int OfonoManagerQuit(void) ; - -gboolean getOfonoModemPoweredByPath (gchar* path); - - -#endif /* OFONO_CLIENT_H */ - - -/****************************** The End Of File ******************************/ - diff --git a/package/config.xml b/package/config.xml new file mode 100644 index 0000000..419acbc --- /dev/null +++ b/package/config.xml @@ -0,0 +1,15 @@ + + + agl-service-bluetooth + + + Bluetooth binding service + Tasuku Suzuki <tasuku.suzuki@qt.io> + APL2.0 + + + + + + + diff --git a/package/icon.svg b/package/icon.svg new file mode 100644 index 0000000..6628784 --- /dev/null +++ b/package/icon.svg @@ -0,0 +1,283 @@ + + + +image/svg+xmlSETTINGS + \ No newline at end of file diff --git a/package/package.pro b/package/package.pro new file mode 100644 index 0000000..23f2fe1 --- /dev/null +++ b/package/package.pro @@ -0,0 +1,21 @@ + +DISTFILES = icon.svg config.xml + +!equals($$_PRO_FILE_PWD_, $$OUT_PWD) { + copy_icon.target = $$OUT_PWD/root/icon.svg + copy_icon.depends = $$_PRO_FILE_PWD_/icon.svg + copy_icon.commands = $(COPY_FILE) \"$$replace(copy_icon.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_icon.target, /, $$QMAKE_DIR_SEP)\" + QMAKE_EXTRA_TARGETS += copy_icon + PRE_TARGETDEPS += $$copy_icon.target + + copy_config.target = $$OUT_PWD/root/config.xml + copy_config.depends = $$_PRO_FILE_PWD_/config.xml + copy_config.commands = $(COPY_FILE) \"$$replace(copy_config.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_config.target, /, $$QMAKE_DIR_SEP)\" + QMAKE_EXTRA_TARGETS += copy_config + PRE_TARGETDEPS += $$copy_config.target +} + +wgt.target = package +wgt.commands = wgtpkg-pack -f -o agl-service-bluetooth.wgt root + +QMAKE_EXTRA_TARGETS += wgt -- cgit 1.2.3-korg