Mercurial > pidgin
comparison libpurple/protocols/jabber/jingle/rtp.c @ 24996:266c3cc02e0e
Move functionality to the state-changed signal.
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Mon, 05 Jan 2009 10:21:56 +0000 |
parents | 8dba34f5f21a |
children | 23da1deb7284 |
comparison
equal
deleted
inserted
replaced
24995:8dba34f5f21a | 24996:266c3cc02e0e |
---|---|
268 { | 268 { |
269 purple_debug_info("jingle-rtp", "jingle_rtp_new_candidate_cb\n"); | 269 purple_debug_info("jingle-rtp", "jingle_rtp_new_candidate_cb\n"); |
270 } | 270 } |
271 | 271 |
272 static void | 272 static void |
273 jingle_rtp_candidates_prepared_cb(PurpleMedia *media, gchar *sid, gchar *name, JingleSession *session) | |
274 { | |
275 JingleContent *content = jingle_session_find_content(session, sid, "initiator"); | |
276 JingleTransport *oldtransport = jingle_content_get_transport(content); | |
277 GList *candidates = purple_media_get_local_candidates(media, sid, name); | |
278 JingleTransport *transport = | |
279 JINGLE_TRANSPORT(jingle_rtp_candidates_to_transport( | |
280 session, JINGLE_IS_RAWUDP(oldtransport) ? | |
281 JINGLE_TYPE_RAWUDP : JINGLE_TYPE_ICEUDP, | |
282 0, candidates)); | |
283 g_list_free(candidates); | |
284 | |
285 JINGLE_RTP_GET_PRIVATE(content)->candidates_ready = TRUE; | |
286 | |
287 jingle_content_set_pending_transport(content, transport); | |
288 jingle_content_accept_transport(content); | |
289 } | |
290 | |
291 static void | |
292 jingle_rtp_candidate_pair_established_cb(PurpleMedia *media, FsCandidate *local_candidate, FsCandidate *remote_candidate, JingleSession *session) | 273 jingle_rtp_candidate_pair_established_cb(PurpleMedia *media, FsCandidate *local_candidate, FsCandidate *remote_candidate, JingleSession *session) |
293 { | 274 { |
294 | 275 |
295 } | 276 } |
296 | 277 |
314 } | 295 } |
315 } else { | 296 } else { |
316 jabber_iq_send(jingle_session_to_packet(session, JINGLE_TRANSPORT_INFO)); | 297 jabber_iq_send(jingle_session_to_packet(session, JINGLE_TRANSPORT_INFO)); |
317 jabber_iq_send(jingle_session_to_packet(session, JINGLE_SESSION_ACCEPT)); | 298 jabber_iq_send(jingle_session_to_packet(session, JINGLE_SESSION_ACCEPT)); |
318 } | 299 } |
300 } else if (sid != NULL && name != NULL) { | |
301 JingleContent *content = jingle_session_find_content(session, sid, "initiator"); | |
302 JingleTransport *oldtransport = jingle_content_get_transport(content); | |
303 GList *candidates = purple_media_get_local_candidates(media, sid, name); | |
304 JingleTransport *transport = | |
305 JINGLE_TRANSPORT(jingle_rtp_candidates_to_transport( | |
306 session, JINGLE_IS_RAWUDP(oldtransport) ? | |
307 JINGLE_TYPE_RAWUDP : JINGLE_TYPE_ICEUDP, | |
308 0, candidates)); | |
309 g_list_free(candidates); | |
310 | |
311 JINGLE_RTP_GET_PRIVATE(content)->candidates_ready = TRUE; | |
312 | |
313 jingle_content_set_pending_transport(content, transport); | |
314 jingle_content_accept_transport(content); | |
319 } | 315 } |
320 } | 316 } |
321 | 317 |
322 static void | 318 static void |
323 jingle_rtp_state_changed_cb(PurpleMedia *media, PurpleMediaStateChangedType type, | 319 jingle_rtp_state_changed_cb(PurpleMedia *media, PurpleMediaStateChangedType type, |
363 g_hash_table_insert(js->medias, sid, media); | 359 g_hash_table_insert(js->medias, sid, media); |
364 | 360 |
365 /* connect callbacks */ | 361 /* connect callbacks */ |
366 g_signal_connect(G_OBJECT(media), "new-candidate", | 362 g_signal_connect(G_OBJECT(media), "new-candidate", |
367 G_CALLBACK(jingle_rtp_new_candidate_cb), session); | 363 G_CALLBACK(jingle_rtp_new_candidate_cb), session); |
368 g_signal_connect(G_OBJECT(media), "candidates-prepared", | |
369 G_CALLBACK(jingle_rtp_candidates_prepared_cb), session); | |
370 g_signal_connect(G_OBJECT(media), "candidate-pair", | 364 g_signal_connect(G_OBJECT(media), "candidate-pair", |
371 G_CALLBACK(jingle_rtp_candidate_pair_established_cb), session); | 365 G_CALLBACK(jingle_rtp_candidate_pair_established_cb), session); |
372 g_signal_connect(G_OBJECT(media), "ready-new", | 366 g_signal_connect(G_OBJECT(media), "ready-new", |
373 G_CALLBACK(jingle_rtp_ready_cb), session); | 367 G_CALLBACK(jingle_rtp_ready_cb), session); |
374 g_signal_connect(G_OBJECT(media), "state-changed", | 368 g_signal_connect(G_OBJECT(media), "state-changed", |