Example #1
0
/** 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));
}