# HG changeset patch # User maiku@pidgin.im # Date 1255997504 0 # Node ID e144a461cf3c89de80d84c5400fd191ad4238eb4 # Parent c52dbc5503d04148d1d10be58260d932b0deaa75 Added the ui-caps-changed signal to the media manager. diff -r c52dbc5503d0 -r e144a461cf3c ChangeLog.API --- a/ChangeLog.API Tue Oct 20 00:10:14 2009 +0000 +++ b/ChangeLog.API Tue Oct 20 00:11:44 2009 +0000 @@ -6,6 +6,7 @@ * purple_account_get_name_for_display * purple_network_get_all_local_system_ips * purple_uuid_random + * ui-caps-changed media manager signal Pidgin: Added: diff -r c52dbc5503d0 -r e144a461cf3c libpurple/marshallers.list --- a/libpurple/marshallers.list Tue Oct 20 00:10:14 2009 +0000 +++ b/libpurple/marshallers.list Tue Oct 20 00:11:44 2009 +0000 @@ -4,3 +4,4 @@ VOID:STRING,STRING,DOUBLE VOID:ENUM,STRING,STRING VOID:ENUM,STRING,STRING,BOOLEAN +VOID:FLAGS,FLAGS diff -r c52dbc5503d0 -r e144a461cf3c libpurple/mediamanager.c --- a/libpurple/mediamanager.c Tue Oct 20 00:10:14 2009 +0000 +++ b/libpurple/mediamanager.c Tue Oct 20 00:11:44 2009 +0000 @@ -100,6 +100,7 @@ enum { INIT_MEDIA, + UI_CAPS_CHANGED, LAST_SIGNAL }; static guint purple_media_manager_signals[LAST_SIGNAL] = {0}; @@ -148,6 +149,15 @@ purple_smarshal_BOOLEAN__OBJECT_POINTER_STRING, G_TYPE_BOOLEAN, 3, PURPLE_TYPE_MEDIA, G_TYPE_POINTER, G_TYPE_STRING); + + purple_media_manager_signals[UI_CAPS_CHANGED] = g_signal_new ("ui-caps-changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + purple_smarshal_VOID__FLAGS_FLAGS, + G_TYPE_NONE, 2, PURPLE_MEDIA_TYPE_CAPS, + PURPLE_MEDIA_TYPE_CAPS); + g_type_class_add_private(klass, sizeof(PurpleMediaManagerPrivate)); } @@ -894,8 +904,17 @@ PurpleMediaCaps caps) { #ifdef USE_VV + PurpleMediaCaps oldcaps; + g_return_if_fail(PURPLE_IS_MEDIA_MANAGER(manager)); + + oldcaps = manager->priv->ui_caps; manager->priv->ui_caps = caps; + + if (caps != oldcaps) + g_signal_emit(manager, + purple_media_manager_signals[UI_CAPS_CHANGED], + 0, caps, oldcaps); #endif }