# HG changeset patch # User Mike Ruprecht # Date 1231824754 0 # Node ID 8b16e5fcaa32132d4ef71c527067e1de60cf25c9 # Parent 3fd5bda55d76389048f4b14787338c3044c67041 Added reject and hangup states to the state-changed signal. diff -r 3fd5bda55d76 -r 8b16e5fcaa32 libpurple/media.c --- a/libpurple/media.c Tue Jan 13 03:02:42 2009 +0000 +++ b/libpurple/media.c Tue Jan 13 05:32:34 2009 +0000 @@ -1313,6 +1313,9 @@ purple_media_hangup(PurpleMedia *media) { g_signal_emit(media, purple_media_signals[STATE_CHANGED], + 0, PURPLE_MEDIA_STATE_CHANGED_HANGUP, + NULL, NULL); + g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_CHANGED_END, NULL, NULL); g_signal_emit(media, purple_media_signals[HANGUP], 0); @@ -1322,6 +1325,9 @@ purple_media_reject(PurpleMedia *media) { g_signal_emit(media, purple_media_signals[STATE_CHANGED], + 0, PURPLE_MEDIA_STATE_CHANGED_REJECTED, + NULL, NULL); + g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_CHANGED_END, NULL, NULL); g_signal_emit(media, purple_media_signals[REJECT], 0); @@ -1336,15 +1342,9 @@ void purple_media_got_hangup(PurpleMedia *media) { -/* - * There's no way to tell who hung up with the new structure. - * I'm commenting this out until this is resolved. - */ -#if 0 g_signal_emit(media, purple_media_signals[STATE_CHANGED], 0, PURPLE_MEDIA_STATE_CHANGED_END, NULL, NULL); -#endif g_signal_emit(media, purple_media_signals[GOT_HANGUP], 0); } diff -r 3fd5bda55d76 -r 8b16e5fcaa32 libpurple/media.h --- a/libpurple/media.h Tue Jan 13 03:02:42 2009 +0000 +++ b/libpurple/media.h Tue Jan 13 05:32:34 2009 +0000 @@ -80,6 +80,8 @@ typedef enum { PURPLE_MEDIA_STATE_CHANGED_NEW = 0, PURPLE_MEDIA_STATE_CHANGED_CONNECTED, + PURPLE_MEDIA_STATE_CHANGED_REJECTED, /** Local user rejected the stream. */ + PURPLE_MEDIA_STATE_CHANGED_HANGUP, /** Local user hung up the stream */ PURPLE_MEDIA_STATE_CHANGED_END, } PurpleMediaStateChangedType; diff -r 3fd5bda55d76 -r 8b16e5fcaa32 libpurple/protocols/jabber/jingle/rtp.c --- a/libpurple/protocols/jabber/jingle/rtp.c Tue Jan 13 03:02:42 2009 +0000 +++ b/libpurple/protocols/jabber/jingle/rtp.c Tue Jan 13 05:32:34 2009 +0000 @@ -320,7 +320,8 @@ { purple_debug_info("jingle-rtp", "state-changed: type %d id: %s name: %s\n", type, sid, name); - if (type == PURPLE_MEDIA_STATE_CHANGED_END && + if ((type == PURPLE_MEDIA_STATE_CHANGED_REJECTED || + type == PURPLE_MEDIA_STATE_CHANGED_HANGUP) && sid == NULL && name == NULL) { gchar *sid = jingle_session_get_sid(session); jabber_iq_send(jingle_session_to_packet(session,