diff --git a/sflphone-client-gnome/src/accountlist.c b/sflphone-client-gnome/src/accountlist.c index f54f7a9ade23cd5fd63a2f2edffed36849bd8d45..cf3e96c2ddedab5f6e169b911de0fcc0c64f4131 100644 --- a/sflphone-client-gnome/src/accountlist.c +++ b/sflphone-client-gnome/src/accountlist.c @@ -94,6 +94,8 @@ account_list_remove (const gchar * accountID) { GList * c = g_queue_find_custom (accountQueue, accountID, is_accountID_struct); + DEBUG("Account List remove"); + if (c) { g_queue_remove (accountQueue, c->data); } @@ -118,11 +120,12 @@ account_list_get_by_id (gchar * accountID) { GList * c = g_queue_find_custom (accountQueue, accountID, is_accountID_struct); - if (c) { - return (account_t *) c->data; - } else { - return NULL; - } + if(c == NULL) { + ERROR("AccountList: Could not find account %s", accountID); + return NULL; + } + + return (account_t *) c->data; } guint account_list_get_size (void) diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c index 5d98d19e7bb864c8690e8924ea42eef82c9bdacf..a6f0a4c7d31445172bfce8e3562cea7c3e7288f4 100644 --- a/sflphone-client-gnome/src/actions.c +++ b/sflphone-client-gnome/src/actions.c @@ -195,7 +195,7 @@ sflphone_hung_up (callable_obj_t * c) { DEBUG ("SFLphone: Hung up"); - calllist_remove (current_calls, c->_callID); + calllist_remove_call (current_calls, c->_callID); calltree_remove_call (current_calls, c, NULL); c->_state = CALL_STATE_DIALING; call_remove_all_errors (c); @@ -452,7 +452,6 @@ sflphone_pick_up() if (selectedCall) { switch (selectedCall->_state) { case CALL_STATE_DIALING: - DEBUG("------------------------------------ PLACING A NEW CALL FROM SFLPHONE PICKUP"); sflphone_place_call (selectedCall); // if instant messaging window is visible, create new tab (deleted automatically if not used) @@ -469,7 +468,6 @@ sflphone_pick_up() im_widget_display ( (IMWidget **) (&selectedCall->_im_widget), NULL, selectedCall->_callID, NULL); dbus_accept (selectedCall); - DEBUG ("from sflphone_pick_up : "); stop_notification(); break; case CALL_STATE_HOLD: @@ -625,8 +623,8 @@ sflphone_incoming_call (callable_obj_t * c) gchar *msg = ""; c->_history_state = MISSED; - calllist_add (current_calls, c); - calllist_add (history, c); + calllist_add_call (current_calls, c); + calllist_add_call (history, c); calltree_add_call (current_calls, c, NULL); update_actions(); calltree_display (current_calls); @@ -737,7 +735,7 @@ sflphone_new_call() c->_history_state = OUTGOING; - calllist_add (current_calls,c); + calllist_add_call (current_calls,c); calltree_add_call (current_calls, c, NULL); update_actions(); @@ -952,7 +950,7 @@ static int _place_registered_call (callable_obj_t * c) } c->_history_state = OUTGOING; - calllist_add (history, c); + calllist_add_call (history, c); return 0; } @@ -1009,7 +1007,7 @@ sflphone_detach_participant (const gchar* callID) calltree_add_call (current_calls, selectedCall, NULL); dbus_detach_participant (selectedCall->_callID); } else { - callable_obj_t * selectedCall = calllist_get (current_calls, callID); + callable_obj_t * selectedCall = calllist_get_call (current_calls, callID); DEBUG ("Action: Darticipant %s", callID); if (selectedCall->_confID) { @@ -1225,7 +1223,7 @@ void sflphone_fill_call_list (void) c->_zrtp_confirmed = FALSE; // Add it to the list DEBUG ("Add call retrieved from server side: %s\n", c->_callID); - calllist_add (current_calls, c); + calllist_add_call (current_calls, c); // Update the GUI calltree_add_call (current_calls, c, NULL); } @@ -1318,7 +1316,7 @@ void sflphone_fill_history (void) create_history_entry_from_serialized_form ( (gchar*) key, (gchar*) value, &history_entry); DEBUG ("HISTORY ENTRY: %i\n", history_entry->_time_start); // Add it and update the GUI - calllist_add (history, history_entry); + calllist_add_call (history, history_entry); // remove entry from map g_hash_table_remove (entries, key_to_min); @@ -1336,7 +1334,7 @@ void sflphone_save_history (void) GHashTable *result = NULL; gchar *key, *value; - DEBUG ("Saving history ..."); + DEBUG ("SFLphone: Saving history ..."); result = g_hash_table_new (NULL, g_str_equal); items = history->callQueue; diff --git a/sflphone-client-gnome/src/callable_obj.c b/sflphone-client-gnome/src/callable_obj.c index d38539a81491341fc7556e3f2a3b63445639733d..ac116d00ed56b09c90d38e43590f827823cdbe0d 100644 --- a/sflphone-client-gnome/src/callable_obj.c +++ b/sflphone-client-gnome/src/callable_obj.c @@ -39,10 +39,10 @@ #define UNIX_DAY 86400 #define UNIX_WEEK 86400 * 6 #define UNIX_TWO_DAYS 86400 * 2 - +/* gint is_callID_callstruct (gconstpointer a, gconstpointer b) { - callable_obj_t * c = (callable_obj_t*) a; + callable_obj_t * c = (callable_obj_t*) a; if (g_strcasecmp (c->_callID, (const gchar*) b) == 0) { return 0; @@ -50,6 +50,7 @@ gint is_callID_callstruct (gconstpointer a, gconstpointer b) return 1; } } +*/ gint get_state_callstruct (gconstpointer a, gconstpointer b) { diff --git a/sflphone-client-gnome/src/callable_obj.h b/sflphone-client-gnome/src/callable_obj.h index f64e40015459a9fdc67acea1b8347e454e4c9a8b..8cdd34da92952b3b4864ee95678c020ef6c01c59 100644 --- a/sflphone-client-gnome/src/callable_obj.h +++ b/sflphone-client-gnome/src/callable_obj.h @@ -182,7 +182,7 @@ void call_remove_all_errors (callable_obj_t * call); /* * GCompareFunc to compare a callID (gchar* and a callable_obj_t) */ -gint is_callID_callstruct (gconstpointer, gconstpointer); +// gint is_callID_callstruct (gconstpointer, gconstpointer); /* * GCompareFunc to get current call (gchar* and a callable_obj_t) diff --git a/sflphone-client-gnome/src/contacts/calllist.c b/sflphone-client-gnome/src/contacts/calllist.c index 765ce2b874d0c7552af28040c6c3cedb10a1bf86..0caacf5fa1e2eb95a2cdeb863259c709dde5dacd 100644 --- a/sflphone-client-gnome/src/contacts/calllist.c +++ b/sflphone-client-gnome/src/contacts/calllist.c @@ -33,6 +33,31 @@ #include <contacts/searchbar.h> #include <eel-gconf-extensions.h> +static +gint is_callID_callstruct(gconstpointer a, gconstpointer b) +{ + QueueElement *c = (QueueElement *) a; + callable_obj_t *call; + + if(c == NULL) { + return 1; + } + + if(c->type != HIST_CALL) { + return 1; + } + + call = c->elem.call; + + DEBUG("Compare %s to %s", call->_callID, (const gchar *)b); + if(g_strcasecmp(call->_callID, (const gchar *) b) == 0) { + return 0; + } + else { + return 1; + } +} + // TODO : sflphoneGTK : try to do this more generic void calllist_add_contact (gchar *contact_name, gchar *contact_phone, contact_type_t type, GdkPixbuf *photo) { @@ -66,7 +91,7 @@ void calllist_add_contact (gchar *contact_name, gchar *contact_phone, contact_ty attach_thumbnail (new_call, pixbuf); } - calllist_add (contacts, new_call); + calllist_add_call (contacts, new_call); calltree_add_call (contacts, new_call, NULL); } } @@ -91,38 +116,66 @@ calllist_reset (calltab_t* tab) tab->callQueue = g_queue_new(); } -void calllist_add_history_entry (callable_obj_t *obj) +void calllist_add_history_call (callable_obj_t *obj) { + QueueElement *element; + if (eel_gconf_get_integer (HISTORY_ENABLED)) { - g_queue_push_tail (history->callQueue, (gpointer *) obj); + element = (QueueElement *)malloc(sizeof(QueueElement)); + element->type = HIST_CALL; + element->elem.call = obj; + g_queue_push_tail (history->callQueue, (gpointer *) element); calltree_add_call (history, obj, NULL); } } -void -calllist_add (calltab_t* tab, callable_obj_t * c) +void calllist_add_history_conference(conference_obj_t *obj) { - if (tab == history) { - calllist_add_history_entry (c); - } else { - g_queue_push_tail (tab->callQueue, (gpointer *) c); + QueueElement *element; + + if(eel_gconf_get_integer (HISTORY_ENABLED)) { + element = (QueueElement *)malloc(sizeof(QueueElement)); + element->type = HIST_CONFERENCE; + element->elem.conf = obj; + g_queue_push_tail (history->callQueue, (gpointer *)element); + calltree_add_conference (history, obj); } } +void +calllist_add_call (calltab_t* tab, callable_obj_t * c) +{ + QueueElement *element; + + DEBUG(")))))))))))))))))))))))))))))))))))))))))))) Calllist: Add Call %s", c->_callID); + + // if (tab == history) { + // calllist_add_history_call (c); + // } else { + element = (QueueElement *)malloc(sizeof(QueueElement)); + element->type = HIST_CALL; + element->elem.call = c; + g_queue_push_tail (tab->callQueue, (gpointer *) element); + // } +} + // TODO : sflphoneGTK : try to do this more generic void calllist_clean_history (void) { unsigned int i; guint size = calllist_get_size (history); - DEBUG ("CallList: history list size = %i", calllist_get_size (history)); - - for (i = 0 ; i < size ; i++) { - DEBUG ("CallList: Delete calls"); - callable_obj_t* c = calllist_get_nth (history , i); - // Delete the call from the call tree - DEBUG ("CallList: Delete calls"); - calltree_remove_call (history, c, NULL); + DEBUG ("CallList: History list size = %i", calllist_get_size (history)); + + for (i = 0 ; i < size; i++) { + QueueElement* c = calllist_get_nth (history , i); + if(c->type == HIST_CALL) { + calltree_remove_call (history, c->elem.call, NULL); + } + else if(c->type == HIST_CONFERENCE) { + calltree_remove_conference (history, c->elem.conf, NULL); + } + free(c); } calllist_reset (history); @@ -132,15 +185,15 @@ calllist_clean_history (void) void calllist_remove_from_history (callable_obj_t* c) { - calllist_remove (history, c->_callID); + calllist_remove_call (history, c->_callID); calltree_remove_call (history, c, NULL); DEBUG ("CallList: Size of history = %i" , calllist_get_size (history)); } void -calllist_remove (calltab_t* tab, const gchar * callID) +calllist_remove_call (calltab_t* tab, const gchar * callID) { - callable_obj_t * c = calllist_get (tab, callID); + callable_obj_t * c = calllist_get_call (tab, callID); if (c) { g_queue_remove (tab->callQueue, c); @@ -167,20 +220,33 @@ calllist_get_size (calltab_t* tab) return g_queue_get_length (tab->callQueue); } -callable_obj_t * +QueueElement * calllist_get_nth (calltab_t* tab, guint n) { return g_queue_peek_nth (tab->callQueue, n); } callable_obj_t * -calllist_get (calltab_t* tab, const gchar * callID) +calllist_get_call (calltab_t* tab, const gchar * callID) { + QueueElement *element; + callable_obj_t *call; + + DEBUG("CallList: Get call: %s", callID); + GList * c = g_queue_find_custom (tab->callQueue, callID, is_callID_callstruct); - - if (c) { - return (callable_obj_t *) c->data; - } else { + if(c == NULL) { + ERROR("CallList: Error: Could not find call %s", callID); return NULL; } + + element = (QueueElement *)c->data; + if(element->type != HIST_CALL) { + ERROR("CallList: Error: Element %s is not a call", callID); + return NULL; + } + + call = element->elem.call; + + return call; } diff --git a/sflphone-client-gnome/src/contacts/calllist.h b/sflphone-client-gnome/src/contacts/calllist.h index e851fbaae0e9943a0233dd6f53a99994ba19ad3d..5288275bc5d871fd19746ae1012e20a7693bd3b0 100644 --- a/sflphone-client-gnome/src/contacts/calllist.h +++ b/sflphone-client-gnome/src/contacts/calllist.h @@ -39,6 +39,18 @@ * @brief A list to hold calls. */ +typedef enum { HIST_CONFERENCE, HIST_CALL } ElementType; + +typedef struct { + callable_obj_t *call; + conference_obj_t *conf; +} callableElement; + +typedef struct { + ElementType type; + callableElement elem; +} QueueElement; + typedef struct { GtkTreeStore* store; GtkWidget* view; @@ -56,7 +68,9 @@ typedef struct { void calllist_add_contact (gchar *, gchar *, contact_type_t, GdkPixbuf *); -void calllist_add_history_entry (callable_obj_t *obj); +void calllist_add_history_call (callable_obj_t *obj); + +void calllist_add_history_conference (conference_obj_t *obj); /** This function initialize a call list. */ void @@ -82,13 +96,13 @@ call_history_set_max_calls (const gdouble number); * @param c The call you want to add * */ void -calllist_add (calltab_t* tab, callable_obj_t * c); +calllist_add_call (calltab_t* tab, callable_obj_t * c); /** This function remove a call from list. * @param callID The callID of the call you want to remove */ void -calllist_remove (calltab_t* tab, const gchar * callID); +calllist_remove_call (calltab_t* tab, const gchar * callID); /** Return the first call that corresponds to the state. * This is usefull for unique states as DIALING and CURRENT. @@ -105,14 +119,14 @@ calllist_get_size (calltab_t* tab); /** Return the call at the nth position in the list * @param n The position of the call you want * @return A call or NULL */ -callable_obj_t * +QueueElement * calllist_get_nth (calltab_t* tab, guint n); /** Return the call corresponding to the callID * @param n The callID of the call you want * @return A call or NULL */ callable_obj_t * -calllist_get (calltab_t* tab, const gchar * callID); +calllist_get_call (calltab_t* tab, const gchar * callID); /** * Clean the history. Delete all calls diff --git a/sflphone-client-gnome/src/contacts/calltree.c b/sflphone-client-gnome/src/contacts/calltree.c index 80e32bd82c602b9f9fe5726b5a143855b9cc9cb9..ba3ce9748835d00e731851f15b33b84cb14fa840 100644 --- a/sflphone-client-gnome/src/contacts/calltree.c +++ b/sflphone-client-gnome/src/contacts/calltree.c @@ -242,7 +242,7 @@ row_activated (GtkTreeView *tree_view UNUSED, create_new_call (CALL, CALL_STATE_DIALING, "", account_id, selectedCall->_peer_name, selectedCall->_peer_number, &new_call); // sflphone_place_call(new_call); - calllist_add (current_calls, new_call); + calllist_add_call(current_calls, new_call); calltree_add_call (current_calls, new_call, NULL); // Function sflphone_place_call (new_call) is processed in process_dialing sflphone_place_call(new_call); @@ -308,7 +308,7 @@ calltree_create_conf_from_participant_list(GSList *list) { for(i = 0; i < list_length; i++) { gchar *participant_id = g_slist_nth_data(list, i); DEBUG("********************* participant %s ***************************", participant_id); - callable_obj_t *call = calllist_get(history, participant_id); + callable_obj_t *call = calllist_get_call(history, participant_id); if(c!=0) { participant_list = (void *) realloc(participant_list, (c+1) * sizeof(void *)); @@ -1234,7 +1234,7 @@ void calltree_add_conference (calltab_t* tab, conference_obj_t* conf) while (conference_participant) { call_id = (gchar*) (conference_participant->data); - call = calllist_get (tab, call_id); + call = calllist_get_call(tab, call_id); if (call != NULL) { @@ -1268,7 +1268,7 @@ void calltree_add_conference (calltab_t* tab, conference_obj_t* conf) while (conference_participant) { // call_id = (gchar*)(*pl); call_id = (gchar*) (conference_participant->data); - call = calllist_get (tab, call_id); + call = calllist_get_call(tab, call_id); if (call != NULL) { @@ -1326,7 +1326,7 @@ void calltree_add_conference (calltab_t* tab, conference_obj_t* conf) while (conference_participant) { call_id = (gchar*) (conference_participant->data); - call = calllist_get (tab, call_id); + call = calllist_get_call(tab, call_id); // create_new_call_from_details (conf_id, conference_details, &c); calltree_remove_call (tab, call, NULL); @@ -1455,7 +1455,7 @@ void calltree_add_history_conference(conference_obj_t *conf) { if(conference_participant) { while(conference_participant) { call_id = (gchar *)(conference_participant->data); - call = calllist_get(current_calls, call_id); + call = calllist_get_call(current_calls, call_id); if(call) { calltree_add_history_entry(call, &iter); } diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c index 2b6149ff8c9fbf4d4c0541c6698d3ae13062492b..49ff53cdb323b73766dc48ea98295d57f8527514 100644 --- a/sflphone-client-gnome/src/dbus/dbus.c +++ b/sflphone-client-gnome/src/dbus/dbus.c @@ -63,7 +63,7 @@ new_call_created_cb (DBusGProxy *proxy UNUSED, const gchar *accountID, const gchar *callID, const gchar *to, void *foo UNUSED) { callable_obj_t *c; - gchar *peer_name = to; + gchar *peer_name = (gchar *)to; gchar *peer_number = ""; DEBUG("DBus: New Call (%s) created to (%s)", callID, to); @@ -73,8 +73,8 @@ new_call_created_cb (DBusGProxy *proxy UNUSED, const gchar *accountID, set_timestamp(&c->_time_start); - calllist_add(current_calls, c); - calllist_add(history, c); + calllist_add_call(current_calls, c); + calllist_add_call(history, c); calltree_add_call(current_calls, c, NULL); update_actions(); calltree_display(current_calls); @@ -115,7 +115,7 @@ zrtp_negotiation_failed_cb (DBusGProxy *proxy UNUSED, const gchar* callID, DEBUG ("Zrtp negotiation failed."); main_window_zrtp_negotiation_failed (callID, reason, severity); callable_obj_t * c = NULL; - c = calllist_get (current_calls, callID); + c = calllist_get_call (current_calls, callID); if (c) { notify_zrtp_negotiation_failed (c); @@ -162,7 +162,7 @@ incoming_message_cb (DBusGProxy *proxy UNUSED, const gchar* callID UNUSED, const return; // Get the call information. (if this call exist) - call = calllist_get (current_calls, callID); + call = calllist_get_call (current_calls, callID); // Get the conference information (if this conference exist) conf = conferencelist_get (callID); @@ -189,13 +189,16 @@ call_state_cb (DBusGProxy *proxy UNUSED, const gchar* callID, const gchar* state void * foo UNUSED) { DEBUG ("DBUS: Call %s state %s",callID, state); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t *c = calllist_get_call (current_calls, callID); + if(c == NULL) { + ERROR("DBUS: Call is NULL"); + } if (c) { if (strcmp (state, "HUNGUP") == 0) { if (c->_state == CALL_STATE_CURRENT) { // peer hung up, the conversation was established, so _stop has been initialized with the current time value - DEBUG ("call state current"); + DEBUG ("DBUS: call state current"); set_timestamp (&c->_time_stop); calltree_update_call (history, c, NULL); } @@ -250,8 +253,8 @@ call_state_cb (DBusGProxy *proxy UNUSED, const gchar* callID, const gchar* state new_call->_history_state = OUTGOING; } - calllist_add (current_calls, new_call); - calllist_add (history, new_call); + calllist_add_call (current_calls, new_call); + calllist_add_call (history, new_call); calltree_add_call (current_calls, new_call, NULL); update_actions(); calltree_display (current_calls); @@ -301,7 +304,7 @@ conference_changed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, while (part) { call_id = (gchar*) (part->data); - call = calllist_get (current_calls, call_id); + call = calllist_get_call (current_calls, call_id); if (call && call->_im_widget) { im_widget_update_state (IM_WIDGET (call->_im_widget), TRUE); @@ -318,7 +321,7 @@ conference_changed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, while (part) { call_id = (gchar*) (part->data); - call = calllist_get (current_calls, call_id); + call = calllist_get_call (current_calls, call_id); if (call && call->_im_widget) { im_widget_update_state (IM_WIDGET (call->_im_widget), FALSE); @@ -353,7 +356,7 @@ conference_created_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo // Add conference ID in in each calls for (part = participants; *part; part++) { call_id = (gchar*) (*part); - call = calllist_get (current_calls, call_id); + call = calllist_get_call (current_calls, call_id); // if a text widget is already created, disable it, use conference widget instead if (call->_im_widget) { @@ -395,7 +398,7 @@ conference_removed_cb (DBusGProxy *proxy UNUSED, const gchar* confID, void * foo // remove all participant for this conference while (participant) { - call = calllist_get (current_calls, (const gchar *) (participant->data)); + call = calllist_get_call (current_calls, (const gchar *) (participant->data)); if (call) { DEBUG ("DBUS: Remove participant %s", call->_callID); @@ -450,7 +453,7 @@ static void secure_sdes_on_cb (DBusGProxy *proxy UNUSED, const gchar *callID, void *foo UNUSED) { DEBUG ("SRTP using SDES is on"); - callable_obj_t *c = calllist_get (current_calls, callID); + callable_obj_t *c = calllist_get_call (current_calls, callID); if (c) { sflphone_srtp_sdes_on (c); @@ -463,7 +466,7 @@ static void secure_sdes_off_cb (DBusGProxy *proxy UNUSED, const gchar *callID, void *foo UNUSED) { DEBUG ("SRTP using SDES is off"); - callable_obj_t *c = calllist_get (current_calls, callID); + callable_obj_t *c = calllist_get_call (current_calls, callID); if (c) { sflphone_srtp_sdes_off (c); @@ -476,7 +479,7 @@ secure_zrtp_on_cb (DBusGProxy *proxy UNUSED, const gchar* callID, const gchar* c void * foo UNUSED) { DEBUG ("SRTP using ZRTP is ON secure_on_cb"); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t * c = calllist_get_call (current_calls, callID); if (c) { c->_srtp_cipher = g_strdup (cipher); @@ -490,7 +493,7 @@ static void secure_zrtp_off_cb (DBusGProxy *proxy UNUSED, const gchar* callID, void * foo UNUSED) { DEBUG ("SRTP using ZRTP is OFF"); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t * c = calllist_get_call (current_calls, callID); if (c) { sflphone_srtp_zrtp_off (c); @@ -503,7 +506,7 @@ show_zrtp_sas_cb (DBusGProxy *proxy UNUSED, const gchar* callID, const gchar* sa const gboolean verified, void * foo UNUSED) { DEBUG ("Showing SAS"); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t * c = calllist_get_call (current_calls, callID); if (c) { sflphone_srtp_zrtp_show_sas (c, sas, verified); @@ -514,7 +517,7 @@ static void confirm_go_clear_cb (DBusGProxy *proxy UNUSED, const gchar* callID, void * foo UNUSED) { DEBUG ("Confirm Go Clear request"); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t * c = calllist_get_call (current_calls, callID); if (c) { sflphone_confirm_go_clear (c); @@ -525,7 +528,7 @@ static void zrtp_not_supported_cb (DBusGProxy *proxy UNUSED, const gchar* callID, void * foo UNUSED) { DEBUG ("ZRTP not supported on the other end"); - callable_obj_t * c = calllist_get (current_calls, callID); + callable_obj_t * c = calllist_get_call (current_calls, callID); if (c) { sflphone_srtp_zrtp_not_supported (c); @@ -538,7 +541,7 @@ sip_call_state_cb (DBusGProxy *proxy UNUSED, const gchar* callID, const gchar* description, const guint code, void * foo UNUSED) { callable_obj_t * c = NULL; - c = calllist_get (current_calls, callID); + c = calllist_get_call (current_calls, callID); if (c != NULL) { ERROR("DBUS: Error call is NULL in state changed"); diff --git a/sflphone-client-gnome/src/imwindow.c b/sflphone-client-gnome/src/imwindow.c index 03b296c50bb45b7fb8598427d408a31f31363fc4..1212d6697f06239ee6b9faa61c9cba246c39dca3 100644 --- a/sflphone-client-gnome/src/imwindow.c +++ b/sflphone-client-gnome/src/imwindow.c @@ -202,7 +202,7 @@ im_window_add_tab (GtkWidget *widget) IMWidget *im = IM_WIDGET (widget); /* Fetch the call */ - callable_obj_t *im_widget_call = calllist_get (current_calls, im->call_id); + callable_obj_t *im_widget_call = calllist_get_call (current_calls, im->call_id); conference_obj_t *im_widget_conf = conferencelist_get (im->call_id); /* A container to include the tab label and the close button */ @@ -274,7 +274,7 @@ im_window_remove_tab (GtkWidget *widget) /* Need to do some memory clean up, so that we could re-open an Im widget for this call later. */ IMWidget *im = IM_WIDGET (widget); - callable_obj_t *call = calllist_get (current_calls, im->call_id); + callable_obj_t *call = calllist_get_call (current_calls, im->call_id); conference_obj_t *conf = conferencelist_get (im->call_id); if (call) diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c index d46daed0a3e85e3b34bd98abaaec7b55a19447b4..3f44a9e8bc9887b7f8eca4c83fdbe93b4f422ff2 100644 --- a/sflphone-client-gnome/src/mainwindow.c +++ b/sflphone-client-gnome/src/mainwindow.c @@ -533,7 +533,7 @@ main_window_zrtp_negotiation_failed (const gchar* callID, const gchar* reason, { gchar* peer_number = "(number unknown)"; callable_obj_t * c = NULL; - c = calllist_get (current_calls, callID); + c = calllist_get_call (current_calls, callID); if (c != NULL) { peer_number = c->_peer_number; diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c index 89434a20111762ffa93feb742e315a6273c59209..6a7b705d0c58200f99d822c0ef52b1726c65b36e 100644 --- a/sflphone-client-gnome/src/uimanager.c +++ b/sflphone-client-gnome/src/uimanager.c @@ -211,7 +211,7 @@ update_actions() if (selectedCall) { - DEBUG("UIManager: Update actions for call"); + DEBUG("UIManager: Update actions for call %s", selectedCall->_callID); // update icon in systray show_status_hangup_icon(); @@ -337,6 +337,8 @@ update_actions() WARN ("Should not happen in update_actions()!"); break; } + + DEBUG("ok"); } else if (selectedConf) { DEBUG("UIManager: Update actions for conference"); @@ -650,7 +652,7 @@ call_pick_up (void * foo UNUSED) create_new_call (CALL, CALL_STATE_DIALING, "", "", "", selectedCall->_peer_number, &new_call); - calllist_add (current_calls, new_call); + calllist_add_call (current_calls, new_call); calltree_add_call (current_calls, new_call, NULL); sflphone_place_call (new_call); calltree_display (current_calls); @@ -733,7 +735,7 @@ call_back (void * foo UNUSED) create_new_call (CALL, CALL_STATE_DIALING, "", "", selected_call->_peer_name, selected_call->_peer_number, &new_call); - calllist_add (current_calls, new_call); + calllist_add_call (current_calls, new_call); calltree_add_call (current_calls, new_call, NULL); sflphone_place_call (new_call); calltree_display (current_calls); @@ -909,7 +911,7 @@ call_mailbox_cb (void) create_new_call (CALL, CALL_STATE_DIALING, "", account_id, _ ("Voicemail"), to, &mailbox_call); DEBUG ("TO : %s" , mailbox_call->_peer_number); - calllist_add (current_calls, mailbox_call); + calllist_add_call (current_calls, mailbox_call); calltree_add_call (current_calls, mailbox_call, NULL); update_actions(); sflphone_place_call (mailbox_call); @@ -1570,7 +1572,7 @@ ok_cb (GtkWidget *widget UNUSED, gpointer userdata) original->_peer_name, g_strdup (new_number), &modified_call); // Update the internal data structure and the GUI - calllist_add (current_calls, modified_call); + calllist_add_call (current_calls, modified_call); calltree_add_call (current_calls, modified_call, NULL); sflphone_place_call (modified_call); calltree_display (current_calls); diff --git a/sflphone-client-gnome/src/widget/imwidget.c b/sflphone-client-gnome/src/widget/imwidget.c index 5c3172a5046ff9dfb984c6ee3980ea43f7650534..5c0d6c8bb1df94efe0b7e019e701ab057e723d2e 100644 --- a/sflphone-client-gnome/src/widget/imwidget.c +++ b/sflphone-client-gnome/src/widget/imwidget.c @@ -50,7 +50,7 @@ on_frame_loading_done (GObject *gobject UNUSED, GParamSpec *pspec UNUSED, gpoint case WEBKIT_LOAD_COMMITTED: break; case WEBKIT_LOAD_FINISHED: - call = calllist_get (current_calls, im->call_id); + call = calllist_get_call (current_calls, im->call_id); conf = conferencelist_get (im->call_id); if (call) @@ -215,13 +215,13 @@ void im_widget_send_message (gchar *id, const gchar *message) { - callable_obj_t *im_widget_call = calllist_get (current_calls, id); + callable_obj_t *im_widget_call = calllist_get_call (current_calls, id); conference_obj_t *im_widget_conf = conferencelist_get (id); /* If the call has been hungup, it is not anymore in the current_calls calltab */ if (!im_widget_call) { /* So try the history tab */ - im_widget_call = calllist_get (history, id); + im_widget_call = calllist_get_call (history, id); } if (im_widget_conf) { @@ -395,7 +395,7 @@ im_widget_infobar (IMWidget *im) GtkWidget *content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (infobar)); /* Fetch call/conference information */ - callable_obj_t *im_widget_call = calllist_get (current_calls, im->call_id); + callable_obj_t *im_widget_call = calllist_get_call (current_calls, im->call_id); conference_obj_t *im_widget_conf = conferencelist_get (im->call_id); /* Create the label widgets with the call information saved in the IM Widget struct */