X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=src%2Fempathy-call-handler.c;h=99054b9def4b6f8e1fb4d58ec32fe3c55e05796e;hp=1db5a34efaf50f57e1ecf8a6da42df7ee66131e6;hb=a9dbf08ec7036c258cd040efa256740138951753;hpb=8944f13286ba5293781f2d57980da284cb2aa29d diff --git a/src/empathy-call-handler.c b/src/empathy-call-handler.c index 1db5a34e..99054b9d 100644 --- a/src/empathy-call-handler.c +++ b/src/empathy-call-handler.c @@ -30,14 +30,12 @@ #include -#include #include #include #include #include "empathy-call-handler.h" -#include "src-marshal.h" #define DEBUG_FLAG EMPATHY_DEBUG_VOIP #include @@ -192,13 +190,18 @@ static void on_call_state_changed_cb (TpyCallChannel *call, TpyCallState state, TpyCallFlags flags, - const GValueArray *call_state_reason, + const GValueArray *call_state_reason, GHashTable *call_state_details, EmpathyCallHandler *handler) { EmpathyCallHandlerPriv *priv = handler->priv; + gchar *dbus_reason; + guint actor, reason; - g_signal_emit (handler, signals[STATE_CHANGED], 0, state); + tp_value_array_unpack ((GValueArray *) call_state_reason, 3, + &actor, &reason, &dbus_reason); + + g_signal_emit (handler, signals[STATE_CHANGED], 0, state, dbus_reason); if (state == TPY_CALL_STATE_ENDED) { @@ -391,7 +394,7 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass) param_spec = g_param_spec_boolean ("initial-video", "initial-video", "Whether the call should start with video", FALSE, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS); g_object_class_install_property (object_class, PROP_INITIAL_VIDEO, param_spec); @@ -458,56 +461,56 @@ empathy_call_handler_class_init (EmpathyCallHandlerClass *klass) signals[CONFERENCE_ADDED] = g_signal_new ("conference-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, + g_cclosure_marshal_generic, G_TYPE_NONE, 1, FS_TYPE_CONFERENCE); signals[CONFERENCE_REMOVED] = g_signal_new ("conference-removed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, + g_cclosure_marshal_generic, G_TYPE_NONE, 1, FS_TYPE_CONFERENCE); signals[SRC_PAD_ADDED] = g_signal_new ("src-pad-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - _src_marshal_BOOLEAN__OBJECT_UINT, + g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, GST_TYPE_PAD, G_TYPE_UINT); signals[SINK_PAD_ADDED] = g_signal_new ("sink-pad-added", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - _src_marshal_BOOLEAN__OBJECT_UINT, + g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, GST_TYPE_PAD, G_TYPE_UINT); signals[SINK_PAD_REMOVED] = g_signal_new ("sink-pad-removed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - _src_marshal_BOOLEAN__OBJECT_UINT, + g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, GST_TYPE_PAD, G_TYPE_UINT); signals[CLOSED] = g_signal_new ("closed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__VOID, + g_cclosure_marshal_generic, G_TYPE_NONE, 0); signals[CANDIDATES_CHANGED] = g_signal_new ("candidates-changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__UINT, + g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_UINT); signals[STATE_CHANGED] = g_signal_new ("state-changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, - g_cclosure_marshal_VOID__UINT, - G_TYPE_NONE, 1, G_TYPE_UINT); + g_cclosure_marshal_generic, + G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_STRING); } EmpathyCallHandler * @@ -944,7 +947,6 @@ empathy_call_handler_start_call (EmpathyCallHandler *handler, gint64 timestamp) { EmpathyCallHandlerPriv *priv = GET_PRIV (handler); - EmpathyChannelFactory *channel_factory; TpAccountChannelRequest *req; TpAccount *account; GHashTable *request; @@ -966,11 +968,6 @@ empathy_call_handler_start_call (EmpathyCallHandler *handler, req = tp_account_channel_request_new (account, request, timestamp); - channel_factory = empathy_channel_factory_dup (); - tp_account_channel_request_set_channel_factory (req, - TP_CLIENT_CHANNEL_FACTORY (channel_factory)); - g_object_unref (channel_factory); - tp_account_channel_request_create_and_handle_channel_async (req, NULL, empathy_call_handler_request_cb, handler);