Mercurial > pidgin.yaz
comparison libpurple/media/media.c @ 29559:cb843608e183
Store local_candidates in PurpleMedia as a GList of PurpleMediaCandidate's.
author | maiku@pidgin.im |
---|---|
date | Mon, 26 Oct 2009 18:32:27 +0000 |
parents | 1fdc75c94c22 |
children | 18571ea6e44a |
comparison
equal
deleted
inserted
replaced
29558:ec069900bf96 | 29559:cb843608e183 |
---|---|
321 purple_timeout_remove(stream->connected_cb_id); | 321 purple_timeout_remove(stream->connected_cb_id); |
322 | 322 |
323 g_free(stream->participant); | 323 g_free(stream->participant); |
324 | 324 |
325 if (stream->local_candidates) | 325 if (stream->local_candidates) |
326 fs_candidate_list_destroy(stream->local_candidates); | 326 purple_media_candidate_list_free(stream->local_candidates); |
327 if (stream->remote_candidates) | 327 if (stream->remote_candidates) |
328 fs_candidate_list_destroy(stream->remote_candidates); | 328 fs_candidate_list_destroy(stream->remote_candidates); |
329 | 329 |
330 if (stream->active_local_candidates) | 330 if (stream->active_local_candidates) |
331 fs_candidate_list_destroy(stream->active_local_candidates); | 331 fs_candidate_list_destroy(stream->active_local_candidates); |
563 g_free(foundation); | 563 g_free(foundation); |
564 g_free(ip); | 564 g_free(ip); |
565 return fscandidate; | 565 return fscandidate; |
566 } | 566 } |
567 | 567 |
568 static PurpleMediaCandidate * | |
569 purple_media_candidate_from_fs(FsCandidate *fscandidate) | |
570 { | |
571 PurpleMediaCandidate *candidate; | |
572 | |
573 if (fscandidate == NULL) | |
574 return NULL; | |
575 | |
576 candidate = purple_media_candidate_new(fscandidate->foundation, | |
577 fscandidate->component_id, fscandidate->type, | |
578 fscandidate->proto, fscandidate->ip, fscandidate->port); | |
579 g_object_set(candidate, | |
580 "base-ip", fscandidate->base_ip, | |
581 "base-port", fscandidate->base_port, | |
582 "priority", fscandidate->priority, | |
583 "username", fscandidate->username, | |
584 "password", fscandidate->password, | |
585 "ttl", fscandidate->ttl, NULL); | |
586 return candidate; | |
587 } | |
588 | |
589 static GList * | |
590 purple_media_candidate_list_from_fs(GList *candidates) | |
591 { | |
592 GList *new_list = NULL; | |
593 | |
594 for (; candidates; candidates = g_list_next(candidates)) { | |
595 new_list = g_list_prepend(new_list, | |
596 purple_media_candidate_from_fs( | |
597 candidates->data)); | |
598 } | |
599 | |
600 new_list = g_list_reverse(new_list); | |
601 return new_list; | |
602 } | |
603 | |
604 static GList * | 568 static GList * |
605 purple_media_candidate_list_to_fs(GList *candidates) | 569 purple_media_candidate_list_to_fs(GList *candidates) |
606 { | 570 { |
607 GList *new_list = NULL; | 571 GList *new_list = NULL; |
608 | 572 |
882 return media_stream; | 846 return media_stream; |
883 } | 847 } |
884 | 848 |
885 static void | 849 static void |
886 purple_media_insert_local_candidate(PurpleMediaSession *session, const gchar *name, | 850 purple_media_insert_local_candidate(PurpleMediaSession *session, const gchar *name, |
887 FsCandidate *candidate) | 851 PurpleMediaCandidate *candidate) |
888 { | 852 { |
889 PurpleMediaStream *stream; | 853 PurpleMediaStream *stream; |
890 | 854 |
891 g_return_if_fail(session != NULL); | 855 g_return_if_fail(session != NULL); |
892 | 856 |
1229 { | 1193 { |
1230 PurpleMediaSession *session = | 1194 PurpleMediaSession *session = |
1231 purple_media_get_session(media, sess_id); | 1195 purple_media_get_session(media, sess_id); |
1232 | 1196 |
1233 purple_media_insert_local_candidate(session, participant, | 1197 purple_media_insert_local_candidate(session, participant, |
1234 purple_media_candidate_to_fs(candidate)); | 1198 purple_media_candidate_copy(candidate)); |
1235 | 1199 |
1236 g_signal_emit(session->media, purple_media_signals[NEW_CANDIDATE], | 1200 g_signal_emit(session->media, purple_media_signals[NEW_CANDIDATE], |
1237 0, session->id, participant, candidate); | 1201 0, session->id, participant, candidate); |
1238 } | 1202 } |
1239 | 1203 |
1685 { | 1649 { |
1686 #ifdef USE_VV | 1650 #ifdef USE_VV |
1687 PurpleMediaStream *stream; | 1651 PurpleMediaStream *stream; |
1688 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); | 1652 g_return_val_if_fail(PURPLE_IS_MEDIA(media), NULL); |
1689 stream = purple_media_get_stream(media, sess_id, participant); | 1653 stream = purple_media_get_stream(media, sess_id, participant); |
1690 return stream ? purple_media_candidate_list_from_fs( | 1654 return stream ? purple_media_candidate_list_copy( |
1691 stream->local_candidates) : NULL; | 1655 stream->local_candidates) : NULL; |
1692 #else | 1656 #else |
1693 return NULL; | 1657 return NULL; |
1694 #endif | 1658 #endif |
1695 } | 1659 } |