コード例 #1
0
static void
conn_prepared_cb (GObject *conn,
		GAsyncResult *result,
		gpointer user_data)
{
	FilterCallbackData *data = user_data;
	GError             *myerr = NULL;
	TpCapabilities     *caps;

	if (!tp_proxy_prepare_finish (conn, result, &myerr)) {
		data->callback (FALSE, data->user_data);
		g_slice_free (FilterCallbackData, data);
		return;
	}

	caps = tp_connection_get_capabilities (TP_CONNECTION (conn));
	data->callback (tp_capabilities_supports_text_chatrooms (caps),
			data->user_data);

	g_slice_free (FilterCallbackData, data);
}
コード例 #2
0
/**
 * empathy_account_chooser_filter_supports_multichat:
 * @account: a #TpAccount
 * @callback: an #EmpathyAccountChooserFilterResultCallback accepting the result
 * @callback_data: data passed to the @callback
 * @user_data: user data or %NULL
 *
 * An #EmpathyAccountChooserFilterFunc that returns accounts that both
 * support multiuser text chat and are connected.
 *
 * Returns (via the callback) TRUE if @account both supports muc and
 * is connected
 */
void
empathy_account_chooser_filter_supports_chatrooms (TpAccount *account,
  EmpathyAccountChooserFilterResultCallback callback,
  gpointer callback_data,
  gpointer user_data)
{
  TpConnection *connection;
  gboolean supported = FALSE;
  TpCapabilities *caps;

  /* check if CM supports multiuser text chat */
  connection = tp_account_get_connection (account);
  if (connection == NULL)
    goto out;

  caps = tp_connection_get_capabilities (connection);
  if (caps == NULL)
    goto out;

  supported = tp_capabilities_supports_text_chatrooms (caps);

out:
  callback (supported, callback_data);
}