From 201aeb1507971ff644c0c02077a80ccd28d80d6e Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)> Date: Wed, 18 Nov 2009 17:38:07 -0500 Subject: [PATCH] [#2447] Bind offHold/onHold actions to button in gtk client --- sflphone-client-gnome/src/actions.c | 15 +++++++++++++++ sflphone-client-gnome/src/uimanager.c | 23 +++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c index b7b1663ecb..a2506dc629 100644 --- a/sflphone-client-gnome/src/actions.c +++ b/sflphone-client-gnome/src/actions.c @@ -442,6 +442,9 @@ sflphone_pick_up() sflphone_on_hold () { callable_obj_t * selectedCall = calltab_get_selected_call(current_calls); + conference_obj_t * selectedConf = calltab_get_selected_conf(active_calltree); + + DEBUG("sflphone_on_hold"); if(selectedCall) { switch(selectedCall->_state) @@ -458,12 +461,18 @@ sflphone_on_hold () break; } } + else if (selectedConf) { + dbus_hold_conference(selectedConf); + } } void sflphone_off_hold () { + DEBUG("sflphone_off_hold"); callable_obj_t * selectedCall = calltab_get_selected_call(current_calls); + conference_obj_t * selectedConf = calltab_get_selected_conf(active_calltree); + if(selectedCall) { switch(selectedCall->_state) @@ -476,7 +485,12 @@ sflphone_off_hold () break; } } + else if (selectedConf) { + + dbus_unhold_conference(selectedConf); + } + /* if(dbus_get_is_recording(selectedCall)) { DEBUG("Currently recording!"); @@ -485,6 +499,7 @@ sflphone_off_hold () { DEBUG("Not recording currently"); } + */ } diff --git a/sflphone-client-gnome/src/uimanager.c b/sflphone-client-gnome/src/uimanager.c index c689516129..1a4632c589 100644 --- a/sflphone-client-gnome/src/uimanager.c +++ b/sflphone-client-gnome/src/uimanager.c @@ -385,6 +385,7 @@ switch_account( GtkWidget* item , gpointer data UNUSED) call_hold (void* foo UNUSED) { callable_obj_t * selectedCall = calltab_get_selected_call(current_calls); + conference_obj_t * selectedConf = calltab_get_selected_conf(); if(selectedCall) { @@ -397,6 +398,28 @@ call_hold (void* foo UNUSED) sflphone_on_hold(); } } + else if (selectedConf) { + + switch(selectedConf->_state) { + + case CONFERENCE_STATE_HOLD: + { + selectedConf->_state = CONFERENCE_STATE_ACTIVE_ATACHED; + sflphone_conference_off_hold(selectedConf); + } + break; + + case CONFERENCE_STATE_ACTIVE_ATACHED: + case CONFERENCE_STATE_ACTIVE_DETACHED: { + selectedConf->_state = CONFERENCE_STATE_HOLD; + sflphone_conference_on_hold(selectedConf); + } + break; + default: + break; + } + + } } static void -- GitLab