comparison libpurple/protocols/jabber/jingle/rtp.c @ 26321:2c9fb8ac325b

Use stream-info instead of state-changed for hangup and reject.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Sat, 21 Mar 2009 00:34:29 +0000
parents 85c571d11417
children 86bc2d34f689
comparison
equal deleted inserted replaced
26320:8b4394e84633 26321:2c9fb8ac325b
437 static void 437 static void
438 jingle_rtp_state_changed_cb(PurpleMedia *media, PurpleMediaStateChangedType type, 438 jingle_rtp_state_changed_cb(PurpleMedia *media, PurpleMediaStateChangedType type,
439 gchar *sid, gchar *name, JingleSession *session) 439 gchar *sid, gchar *name, JingleSession *session)
440 { 440 {
441 purple_debug_info("jingle-rtp", "state-changed: type %d id: %s name: %s\n", type, sid, name); 441 purple_debug_info("jingle-rtp", "state-changed: type %d id: %s name: %s\n", type, sid, name);
442 442 }
443 if ((type == PURPLE_MEDIA_STATE_CHANGED_REJECTED || 443
444 type == PURPLE_MEDIA_STATE_CHANGED_HANGUP) && 444 static void
445 sid == NULL && name == NULL) { 445 jingle_rtp_stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type,
446 gchar *sid, gchar *name, JingleSession *session)
447 {
448 purple_debug_info("jingle-rtp", "stream-info: type %d "
449 "id: %s name: %s\n", type, sid, name);
450 if (type == PURPLE_MEDIA_INFO_HANGUP) {
446 jabber_iq_send(jingle_session_terminate_packet( 451 jabber_iq_send(jingle_session_terminate_packet(
447 session, "success")); 452 session, "success"));
453 g_object_unref(session);
454 } else if (type == PURPLE_MEDIA_INFO_REJECT) {
455 jabber_iq_send(jingle_session_terminate_packet(
456 session, "decline"));
448 g_object_unref(session); 457 g_object_unref(session);
449 } 458 }
450 } 459 }
451 460
452 static void 461 static void
510 G_CALLBACK(jingle_rtp_candidates_prepared_cb), session); 519 G_CALLBACK(jingle_rtp_candidates_prepared_cb), session);
511 g_signal_connect(G_OBJECT(media), "codecs-changed", 520 g_signal_connect(G_OBJECT(media), "codecs-changed",
512 G_CALLBACK(jingle_rtp_codecs_changed_cb), session); 521 G_CALLBACK(jingle_rtp_codecs_changed_cb), session);
513 g_signal_connect(G_OBJECT(media), "state-changed", 522 g_signal_connect(G_OBJECT(media), "state-changed",
514 G_CALLBACK(jingle_rtp_state_changed_cb), session); 523 G_CALLBACK(jingle_rtp_state_changed_cb), session);
524 g_signal_connect(G_OBJECT(media), "stream-info",
525 G_CALLBACK(jingle_rtp_stream_info_cb), session);
515 526
516 g_object_unref(session); 527 g_object_unref(session);
517 return media; 528 return media;
518 } 529 }
519 530