Esempio n. 1
0
static void
member_content_removed_cb (GabbleCallMemberContent *mcontent,
    gpointer user_data)
{
  GabbleCallContent *self = GABBLE_CALL_CONTENT (user_data);
  GabbleCallContentPrivate *priv = self->priv;
  TpBaseCallContent *base = TP_BASE_CALL_CONTENT (self);
  GabbleJingleContent *content;
  GList *l;

  priv->contents = g_list_remove (priv->contents, mcontent);

  content = gabble_call_member_content_get_jingle_content (mcontent);

  for (l = tp_base_call_content_get_streams (base);
       l != NULL;
       l = l->next)
    {
      GabbleCallStream *stream = GABBLE_CALL_STREAM (l->data);

      if (content == gabble_call_stream_get_jingle_content (stream))
        {
          tp_base_call_content_remove_stream (base, l->data,
              0, TP_CALL_STATE_CHANGE_REASON_PROGRESS_MADE, "", "");
          break;
        }
    }
}
Esempio n. 2
0
void
example_call_content_remove_stream (ExampleCallContent *self)
{
  TpBaseCallStream *stream;

  g_return_if_fail (EXAMPLE_IS_CALL_CONTENT (self));
  g_return_if_fail (self->priv->stream != NULL);

  stream = (TpBaseCallStream *) self->priv->stream;
  self->priv->stream = NULL;

  tp_base_call_content_remove_stream ((TpBaseCallContent *) self, stream,
      0, TP_CALL_STATE_CHANGE_REASON_UNKNOWN, "", "");

  g_object_unref (stream);
}