diff --git a/linphone/configure.in b/linphone/configure.in index ba1a771d3..fc784570c 100644 --- a/linphone/configure.in +++ b/linphone/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.2.0],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.2.0.99],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM dnl Source packaging numbers diff --git a/linphone/coreapi/exevents.c b/linphone/coreapi/exevents.c index 4e0810286..58513e558 100644 --- a/linphone/coreapi/exevents.c +++ b/linphone/coreapi/exevents.c @@ -965,19 +965,23 @@ void linphone_registration_success(LinphoneCore *lc,eXosip_event_t *ev){ char *msg; char *ru; osip_header_t *h=NULL; - osip_uri_to_str(requri,&ru); - msg=ms_strdup_printf(_("Registration on %s successful."),ru); - lc->vtable.display_status(lc,msg); - ms_free(msg); - osip_free(ru); + cfg=linphone_core_get_proxy_config_from_rid(lc,ev->rid); ms_return_if_fail(cfg!=NULL); + gstate_new_state(lc, GSTATE_REG_OK, NULL); osip_message_get_expires(ev->request,0,&h); if (h!=NULL && atoi(h->hvalue)!=0){ cfg->registered=TRUE; linphone_proxy_config_register_again_with_updated_contact(cfg,ev->request,ev->response); }else cfg->registered=FALSE; + + osip_uri_to_str(requri,&ru); + if (cfg->registered) msg=ms_strdup_printf(_("Registration on %s successful."),ru); + else msg=ms_strdup_printf(_("Unregistration on %s done."),ru); + lc->vtable.display_status(lc,msg); + ms_free(msg); + osip_free(ru); } static bool_t comes_from_local_if(osip_message_t *msg){ diff --git a/linphone/coreapi/siplogin.c b/linphone/coreapi/siplogin.c index 30c54d74f..78455ae86 100644 --- a/linphone/coreapi/siplogin.c +++ b/linphone/coreapi/siplogin.c @@ -66,8 +66,10 @@ static int sip_login_do_login(SipSetupContext * ctx, const char *uri, const char } osip_from_to_str(parsed_uri,&tmp); linphone_proxy_config_set_identity(cfg,tmp); - auth=linphone_auth_info_new(parsed_uri->url->username,NULL,passwd,NULL,NULL); - linphone_core_add_auth_info(lc,auth); + if (passwd ) { + auth=linphone_auth_info_new(parsed_uri->url->username,NULL,passwd,NULL,NULL); + linphone_core_add_auth_info(lc,auth); + } linphone_proxy_config_enable_register(cfg,TRUE); linphone_proxy_config_done(cfg); osip_free(tmp); @@ -76,11 +78,19 @@ static int sip_login_do_login(SipSetupContext * ctx, const char *uri, const char return 0; } +static int sip_login_do_logout(SipSetupContext * ctx){ + LinphoneProxyConfig *cfg=sip_setup_context_get_proxy_config(ctx); + linphone_proxy_config_enable_register(cfg,FALSE); + linphone_proxy_config_done(cfg); + return 0; +} + /* a simple SipSetup built-in plugin to allow specify the user/password for proxy config at runtime*/ SipSetup linphone_sip_login={ .name="SipLogin", .capabilities=SIP_SETUP_CAP_LOGIN, .init_instance=sip_login_init_instance, .login_account=sip_login_do_login, + .logout_account=sip_login_do_logout }; diff --git a/linphone/coreapi/sipsetup.c b/linphone/coreapi/sipsetup.c index e1c0c7230..84c221105 100644 --- a/linphone/coreapi/sipsetup.c +++ b/linphone/coreapi/sipsetup.c @@ -180,6 +180,13 @@ void sip_setup_context_free_results(MSList *results){ ms_list_free(results); } +int sip_setup_context_logout(SipSetupContext *ctx){ + if (ctx->funcs->logout_account){ + return ctx->funcs->logout_account(ctx); + } + return -1; +} + void sip_setup_context_free(SipSetupContext *ctx){ if (ctx->funcs->uninit_instance){ ctx->funcs->uninit_instance(ctx); diff --git a/linphone/coreapi/sipsetup.h b/linphone/coreapi/sipsetup.h index 2145d2d1a..d0840e915 100644 --- a/linphone/coreapi/sipsetup.h +++ b/linphone/coreapi/sipsetup.h @@ -90,6 +90,7 @@ struct _SipSetup{ int (*get_buddy_lookup_results)(SipSetupContext *ctx, MSList **results); const char * (*get_notice)(SipSetupContext *ctx); const char ** (*get_domains)(SipSetupContext *ctx); + int (*logout_account)(SipSetupContext *ctx); }; typedef struct _SipSetup SipSetup; @@ -122,6 +123,8 @@ const char ** sip_setup_context_get_domains(SipSetupContext *ctx); void sip_setup_context_free_results(MSList *results); void sip_setup_context_free(SipSetupContext *ctx); +int sip_setup_context_logout(SipSetupContext *ctx); + /*internal methods*/ struct _LinphoneProxyConfig *sip_setup_context_get_proxy_config(const SipSetupContext *ctx); diff --git a/linphone/gtk-glade/incall_view.c b/linphone/gtk-glade/incall_view.c index 879b5dcd5..793cca06c 100644 --- a/linphone/gtk-glade/incall_view.c +++ b/linphone/gtk-glade/incall_view.c @@ -12,6 +12,12 @@ #include "linphone.h" +gboolean linphone_gtk_use_in_call_view(){ + static int val=-1; + if (val==-1) val=linphone_gtk_get_ui_config_int("use_incall_view",1); + return val; +} + void linphone_gtk_show_in_call_view(void){ GtkWidget *main_window=linphone_gtk_get_main_window(); GtkWidget *idle_frame=linphone_gtk_get_widget(main_window,"idle_frame"); @@ -33,6 +39,11 @@ void display_peer_name_in_label(GtkWidget *label, const char *uri){ char *displayname=NULL,*id=NULL; char *uri_label; + if (uri==NULL) { + ms_error("Strange: in call with nobody ?"); + return; + } + osip_from_init(&from); if (osip_from_parse(from,uri)==0){ diff --git a/linphone/gtk-glade/linphone.h b/linphone/gtk-glade/linphone.h index 87b163273..6b1f5b902 100644 --- a/linphone/gtk-glade/linphone.h +++ b/linphone/gtk-glade/linphone.h @@ -64,6 +64,8 @@ void linphone_gtk_destroy_log_window(void); gboolean linphone_gtk_check_logs(); const gchar *linphone_gtk_get_ui_config(const char *key, const char *def); int linphone_gtk_get_ui_config_int(const char *key, int def); +void linphone_gtk_set_ui_config_int(const char *key , int val); + void linphone_gtk_open_browser(const char *url); void linphone_gtk_check_for_new_version(void); const char *linphone_gtk_get_lang(const char *config_file); @@ -77,6 +79,7 @@ gchar *linphone_gtk_get_display_name(const char *sip_uri); void linphone_gtk_show_directory_search(void); /*functions controlling the different views*/ +gboolean linphone_gtk_use_in_call_view(); void linphone_gtk_show_in_call_view(void); void linphone_gtk_show_idle_view(void); void linphone_gtk_in_call_view_set_calling(const char *uri); diff --git a/linphone/gtk-glade/loginframe.c b/linphone/gtk-glade/loginframe.c index 889893d1d..da5d2753c 100644 --- a/linphone/gtk-glade/loginframe.c +++ b/linphone/gtk-glade/loginframe.c @@ -19,11 +19,39 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "linphone.h" +void linphone_gtk_login_frame_connect_clicked(GtkWidget *button); +void linphone_gtk_exit_login_frame(void); + enum { NetworkKindAdsl, NetworkKindOpticalFiber }; +static gboolean check_login_ok(LinphoneProxyConfig *cfg){ + if (linphone_proxy_config_is_registered(cfg)){ + linphone_gtk_exit_login_frame(); + return FALSE; + } + return TRUE; +} + +static void do_login(SipSetupContext *ssctx, const char *identity, const char * passwd){ + GtkWidget *mw=linphone_gtk_get_main_window(); + if (sip_setup_context_login_account(ssctx,identity,passwd)==0){ + guint t=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mw),"login_tout")); + if (t!=0) g_source_remove(t); + t=g_timeout_add(50,(GSourceFunc)check_login_ok,sip_setup_context_get_proxy_config(ssctx)); + g_object_set_data(G_OBJECT(mw),"login_tout",GINT_TO_POINTER(t)); + } +} + +static gboolean do_login_noprompt(LinphoneProxyConfig *cfg){ + SipSetupContext *ssctx=linphone_proxy_config_get_sip_setup_context(cfg); + if (ssctx==NULL) return TRUE;/*not ready ?*/ + do_login(ssctx,linphone_proxy_config_get_identity(cfg),NULL); + return FALSE; +} + void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ GtkWidget *mw=linphone_gtk_get_main_window(); GtkWidget *label=linphone_gtk_get_widget(mw,"login_label"); @@ -33,6 +61,12 @@ void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ LinphoneCore *lc=linphone_gtk_get_core(); int nettype; + if (linphone_gtk_get_ui_config_int("automatic_login",0) ){ + g_timeout_add(250,(GSourceFunc)do_login_noprompt,cfg); + return; + } + + gtk_widget_hide(linphone_gtk_get_widget(mw,"logout")); gtk_widget_hide(linphone_gtk_get_widget(mw,"idle_frame")); gtk_widget_show(linphone_gtk_get_widget(mw,"login_frame")); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"main_menu"),FALSE); @@ -66,32 +100,55 @@ void linphone_gtk_exit_login_frame(void){ gtk_widget_hide(linphone_gtk_get_widget(mw,"login_frame")); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"main_menu"),TRUE); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"modes"),TRUE); + gtk_widget_show(linphone_gtk_get_widget(mw,"logout")); } -gboolean check_login_ok(LinphoneProxyConfig *cfg){ - if (linphone_proxy_config_is_registered(cfg)){ - linphone_gtk_exit_login_frame(); - return FALSE; +void linphone_gtk_logout_clicked(){ + LinphoneCore *lc=linphone_gtk_get_core(); + LinphoneProxyConfig *cfg=NULL; + linphone_core_get_default_proxy(lc,&cfg); + if (cfg){ + SipSetupContext *ss=linphone_proxy_config_get_sip_setup_context(cfg); + if (ss){ + sip_setup_context_logout(ss); + linphone_gtk_set_ui_config_int("automatic_login",FALSE); + linphone_gtk_show_login_frame(cfg); + } } - return TRUE; } + + void linphone_gtk_login_frame_connect_clicked(GtkWidget *button){ GtkWidget *mw=gtk_widget_get_toplevel(button); const char *username; const char *password; char *identity; - int netkind_id; - LinphoneCore *lc=linphone_gtk_get_core(); + gboolean autologin; LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)g_object_get_data(G_OBJECT(mw),"login_proxy_config"); - SipSetupContext *ssctx=linphone_proxy_config_get_sip_setup_context(cfg); osip_from_t *from; + SipSetupContext *ssctx=linphone_proxy_config_get_sip_setup_context(cfg); username=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_username"))); password=gtk_entry_get_text(GTK_ENTRY(linphone_gtk_get_widget(mw,"login_password"))); - netkind_id=gtk_combo_box_get_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"login_internet_kind"))); + autologin=gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(mw,"automatic_login"))); + linphone_gtk_set_ui_config_int("automatic_login",autologin); + osip_from_init(&from); + osip_from_parse(from,linphone_proxy_config_get_identity(cfg)); + osip_free(from->url->username); + from->url->username=osip_strdup(username); + osip_from_to_str(from,&identity); + osip_from_free(from); + do_login(ssctx,identity,password); + /*we need to refresh the identities since the proxy config may have changed.*/ + linphone_gtk_load_identities(); +} + +void linphone_gtk_internet_kind_changed(GtkWidget *combo){ + int netkind_id=gtk_combo_box_get_active(GTK_COMBO_BOX(combo)); + LinphoneCore *lc=linphone_gtk_get_core(); if (netkind_id==NetworkKindAdsl){ linphone_core_set_upload_bandwidth(lc,256); linphone_core_set_download_bandwidth(lc,512); @@ -100,18 +157,4 @@ void linphone_gtk_login_frame_connect_clicked(GtkWidget *button){ linphone_core_set_upload_bandwidth(lc,0); linphone_core_set_download_bandwidth(lc,0); } - osip_from_init(&from); - osip_from_parse(from,linphone_proxy_config_get_identity(cfg)); - osip_free(from->url->username); - from->url->username=osip_strdup(username); - osip_from_to_str(from,&identity); - osip_from_free(from); - if (sip_setup_context_login_account(ssctx,identity,password)==0){ - guint t=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mw),"login_tout")); - if (t!=0) g_source_remove(t); - t=g_timeout_add(50,(GSourceFunc)check_login_ok,cfg); - g_object_set_data(G_OBJECT(mw),"login_tout",GINT_TO_POINTER(t)); - } - /*we need to refresh the identities since the proxy config may have changed.*/ - linphone_gtk_load_identities(); } diff --git a/linphone/gtk-glade/main.c b/linphone/gtk-glade/main.c index 9d9b550c4..9368171a3 100644 --- a/linphone/gtk-glade/main.c +++ b/linphone/gtk-glade/main.c @@ -135,6 +135,7 @@ static GOptionEntry linphone_options[]={ static char _config_file[1024]; + const char *linphone_gtk_get_config_file(){ /*try accessing a local file first if exists*/ if (access(CONFIG_FILE,F_OK)==0){ @@ -172,7 +173,7 @@ GtkWidget *linphone_gtk_get_main_window(){ return the_ui; } -static void parse_item(const char *item, const char *window_name, GtkWidget *w){ +static void parse_item(const char *item, const char *window_name, GtkWidget *w, gboolean show){ char tmp[64]; char *dot; strcpy(tmp,item); @@ -182,12 +183,15 @@ static void parse_item(const char *item, const char *window_name, GtkWidget *w){ dot++; if (strcmp(window_name,tmp)==0){ GtkWidget *wd=linphone_gtk_get_widget(w,dot); - if (wd) gtk_widget_hide(wd); + if (wd) { + if (!show) gtk_widget_hide(wd); + else gtk_widget_show(wd); + } } } } -static void parse_hiddens(const char *hiddens, const char *window_name, GtkWidget *w){ +static void parse_widgets(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show){ char item[64]; const char *i; const char *b; @@ -198,30 +202,33 @@ static void parse_hiddens(const char *hiddens, const char *window_name, GtkWidge strncpy(item,b,len); item[len]='\0'; b=i+1; - parse_item(item,window_name,w); + parse_item(item,window_name,w,show); } } len=MIN(i-b,sizeof(item)-1); if (len>0){ strncpy(item,b,len); item[len]='\0'; - parse_item(item,window_name,w); + parse_item(item,window_name,w,show); } } static void linphone_gtk_configure_window(GtkWidget *w, const char *window_name){ - static const char *icon_path=0; - static const char *hiddens=0; + static const char *icon_path=NULL; + static const char *hiddens=NULL; + static const char *shown=NULL; static bool_t config_loaded=FALSE; if (linphone_gtk_get_core()==NULL) return; if (config_loaded==FALSE){ hiddens=linphone_gtk_get_ui_config("hidden_widgets",NULL); + shown=linphone_gtk_get_ui_config("shown_widgets",NULL); icon_path=linphone_gtk_get_ui_config("icon",NULL); config_loaded=TRUE; } - if (hiddens){ - parse_hiddens(hiddens,window_name,w); - } + if (hiddens) + parse_widgets(hiddens,window_name,w,FALSE); + if (shown) + parse_widgets(shown,window_name,w,TRUE); if (icon_path) { GdkPixbuf *pbuf=create_pixbuf(icon_path); gtk_window_set_icon(GTK_WINDOW(w),pbuf); @@ -513,7 +520,8 @@ void linphone_gtk_call_terminated(const char *error){ gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),FALSE); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE); gtk_widget_hide_all(linphone_gtk_get_widget(mw,"go_to_call_view_box")); - linphone_gtk_in_call_view_terminate(error); + if (linphone_gtk_use_in_call_view()) + linphone_gtk_in_call_view_terminate(error); update_video_title(); g_object_set_data(G_OBJECT(mw),"incoming_call",NULL); @@ -533,7 +541,8 @@ static void linphone_gtk_call_started(GtkWidget *mw){ gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),TRUE); gtk_widget_show_all(linphone_gtk_get_widget(mw,"go_to_call_view_box")); update_video_title(); - g_timeout_add(250,(GSourceFunc)in_call_timer,NULL); + if (linphone_gtk_use_in_call_view()) + g_timeout_add(250,(GSourceFunc)in_call_timer,NULL); } static gboolean linphone_gtk_start_call_do(GtkWidget *uri_bar){ @@ -555,8 +564,10 @@ void linphone_gtk_start_call(GtkWidget *w){ GtkWidget *uri_bar=linphone_gtk_get_widget(mw,"uribar"); const char *entered=gtk_entry_get_text(GTK_ENTRY(uri_bar)); linphone_gtk_call_started(mw); - linphone_gtk_in_call_view_set_calling(entered); - linphone_gtk_show_in_call_view(); + if (linphone_gtk_use_in_call_view()){ + linphone_gtk_in_call_view_set_calling(entered); + linphone_gtk_show_in_call_view(); + } g_timeout_add(100,(GSourceFunc)linphone_gtk_start_call_do,uri_bar); } } @@ -584,8 +595,10 @@ void linphone_gtk_accept_call(GtkWidget *button){ g_object_set_data(G_OBJECT(linphone_gtk_get_main_window()),"incoming_call",NULL); gtk_widget_destroy(gtk_widget_get_toplevel(button)); linphone_gtk_call_started(linphone_gtk_get_main_window()); - linphone_gtk_in_call_view_set_in_call(); - linphone_gtk_show_in_call_view(); + if (linphone_gtk_use_in_call_view()){ + linphone_gtk_in_call_view_set_in_call(); + linphone_gtk_show_in_call_view(); + } } static gboolean linphone_gtk_auto_answer(GtkWidget *incall_window){ @@ -794,7 +807,8 @@ static void linphone_gtk_general_state(LinphoneCore *lc, LinphoneGeneralState *g switch(gstate->new_state){ case GSTATE_CALL_OUT_CONNECTED: case GSTATE_CALL_IN_CONNECTED: - linphone_gtk_in_call_view_set_in_call(); + if (linphone_gtk_use_in_call_view()) + linphone_gtk_in_call_view_set_in_call(); break; case GSTATE_CALL_ERROR: linphone_gtk_call_terminated(gstate->message); diff --git a/linphone/gtk-glade/main.glade b/linphone/gtk-glade/main.glade index 1ca30aaa3..5acd379ea 100644 --- a/linphone/gtk-glade/main.glade +++ b/linphone/gtk-glade/main.glade @@ -63,6 +63,14 @@ + + + gtk-disconnect + True + True + + + True @@ -345,154 +353,203 @@ True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 + vertical - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 + 0 - + True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical + 12 - + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + vertical - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Lookup: - - - 12 - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - 4 - 1 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - in - - - 8 - 2 - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - All users + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Lookup: + + + 12 + 0 + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + 4 + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + in + + + 8 + 2 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + All users Online users - - - - 4 - 3 - - - - - False - 0 - - - - - True - True - automatic - automatic - - - 120 - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - - - - 1 - - - - - - - True - True - - gtk-find - True - True - - - - - - - 0 - - - - - gtk-find - True - True - True - True - + + + + 4 + 3 + + False + 0 + + + + + True + True + automatic + automatic + + + 120 + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + + + + + + 1 + + + + + True + True + + gtk-find + True + True + + + + + + + 0 + + + + + gtk-find + True + True + True + True + + + + False + 1 + + + + + False + False + 2 + + - - False - False - 2 - - - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Contact list</b> - True + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + <b>Contact list</b> + True + + + label_item + + - label_item + 8 + 0 + + + + + Mute + True + False + True + + + 1 + + + + + + + True + Internet connection: + + + 0 + + + + + True + 0 + ADSL +Fiber Channel + + + + 1 + + + + + 2 @@ -1166,7 +1223,7 @@ Online users True - 3 + 4 2 @@ -1222,8 +1279,10 @@ Online users True + 0 ADSL Fiber Channel + 1 @@ -1232,6 +1291,24 @@ Fiber Channel 3 + + + Automatically log me in + True + True + False + True + + + 1 + 2 + 3 + 4 + + + + + @@ -1255,7 +1332,7 @@ Fiber Channel True - + gtk-connect True True diff --git a/linphone/gtk-glade/support.c b/linphone/gtk-glade/support.c index dc3a8c0c3..689faf5a2 100644 --- a/linphone/gtk-glade/support.c +++ b/linphone/gtk-glade/support.c @@ -188,4 +188,9 @@ int linphone_gtk_get_ui_config_int(const char *key, int def){ return lp_config_get_int(cfg,"GtkUi",key,def); } +void linphone_gtk_set_ui_config_int(const char *key , int val){ + LpConfig *cfg=linphone_core_get_config(linphone_gtk_get_core()); + lp_config_set_int(cfg,"GtkUi",key,val); +} +