/** Connect to call service */ static void modem_call_service_connect (ModemOface *_self) { DEBUG ("(%p): enter", _self); ModemCallService *self = MODEM_CALL_SERVICE (_self); ModemCallServicePrivate *priv = self->priv; if (!priv->signals) { DBusGProxy *proxy = DBUS_PROXY (_self); priv->signals = TRUE; #define CONNECT(p, handler, name, signature...) \ dbus_g_proxy_add_signal (p, (name), ##signature); \ dbus_g_proxy_connect_signal (p, (name), G_CALLBACK (handler), self, NULL) CONNECT (proxy, on_manager_call_added, "CallAdded", DBUS_TYPE_G_OBJECT_PATH, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); CONNECT (proxy, on_manager_call_removed, "CallRemoved", DBUS_TYPE_G_OBJECT_PATH, G_TYPE_INVALID); CONNECT (proxy, on_manager_call_forwarded, "Forwarded", G_TYPE_STRING, G_TYPE_INVALID); #undef CONNECT } modem_oface_connect_properties (_self, TRUE); modem_oface_add_connect_request (_self, modem_oface_request_managed (_self, "GetCalls", reply_to_call_manager_get_calls, NULL)); }
static void modem_sms_service_connect (ModemOface *_self) { DEBUG ("(%p): enter", _self); ModemSMSService *self = MODEM_SMS_SERVICE (_self); ModemSMSServicePrivate *priv = self->priv; DBusGProxy *proxy = modem_oface_dbus_proxy (_self); if (!priv->signals) { priv->signals = TRUE; #define CONNECT(handler, name, signature...) \ dbus_g_proxy_add_signal (proxy, (name), ##signature); \ dbus_g_proxy_connect_signal (proxy, (name), G_CALLBACK (handler), self, NULL) CONNECT (on_immediate_message, "ImmediateMessage", G_TYPE_STRING, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); CONNECT (on_incoming_message, "IncomingMessage", G_TYPE_STRING, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); CONNECT (on_manager_message_added, "MessageAdded", DBUS_TYPE_G_OBJECT_PATH, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); CONNECT (on_manager_message_added, "MessageRemoved", DBUS_TYPE_G_OBJECT_PATH, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); } modem_oface_connect_properties (_self, TRUE); modem_oface_add_connect_request (_self, modem_oface_request_managed (_self, "GetMessages", reply_to_sms_manager_get_messages, NULL)); }