diff --git a/coreapi/TunnelManager.cc b/coreapi/TunnelManager.cc index b8f1dae48..3e998cb74 100644 --- a/coreapi/TunnelManager.cc +++ b/coreapi/TunnelManager.cc @@ -25,6 +25,7 @@ using namespace belledonnecomm; +using namespace ::std; Mutex TunnelManager::sMutex; diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index b587ac75c..142a7a564 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -341,6 +341,8 @@ static void call_accepted(SalOp *op){ } linphone_core_update_streams (lc,call,md); linphone_call_set_state(call,LinphoneCallPaused,"Call paused"); + if (call->refer_pending) + linphone_core_start_refered_call(lc,call); }else if (sal_media_description_has_dir(md,SalStreamRecvOnly)){ /*we are put on hold when the call is initially accepted */ if (lc->vtable.display_status){ @@ -757,8 +759,10 @@ static void refer_received(Sal *sal, SalOp *op, const char *referto){ ms_message("Automatically pausing current call to accept transfer."); linphone_core_pause_call(lc,call); call->was_automatically_paused=TRUE; - } - linphone_core_start_refered_call(lc,call); + /*then we will start the refered when the pause is accepted, in order to serialize transactions within the dialog. + * Indeed we need to avoid to send a NOTIFY to inform about of state of the refered call while the pause isn't completed. + **/ + }else linphone_core_start_refered_call(lc,call); }else if (lc->vtable.refer_received){ lc->vtable.refer_received(lc,referto); } diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index d41c6cdad..69f9266a1 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -770,6 +770,14 @@ void linphone_call_params_enable_video(LinphoneCallParams *cp, bool_t enabled){ cp->has_video=enabled; } +const PayloadType* linphone_call_params_get_used_audio_codec(const LinphoneCallParams *cp) { + return cp->audio_codec; +} + +const PayloadType* linphone_call_params_get_used_video_codec(const LinphoneCallParams *cp) { + return cp->video_codec; +} + /** * Returns whether video is enabled. **/ @@ -1146,6 +1154,7 @@ static void linphone_call_start_audio_stream(LinphoneCall *call, const char *cna bool_t use_ec; if (used_pt!=-1){ + call->current_params.audio_codec = rtp_profile_get_payload(call->audio_profile, used_pt); if (playcard==NULL) { ms_warning("No card defined for playback !"); } @@ -1262,6 +1271,7 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna const char *addr=vstream->addr[0]!='\0' ? vstream->addr : call->resultdesc->addr; call->video_profile=make_profile(call,call->resultdesc,vstream,&used_pt); if (used_pt!=-1){ + call->current_params.video_codec = rtp_profile_get_payload(call->video_profile, used_pt); VideoStreamDir dir=VideoStreamSendRecv; MSWebCam *cam=lc->video_conf.device; bool_t is_inactive=FALSE; @@ -1333,6 +1343,10 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_muted, bool_t send_ringbacktone){ LinphoneCore *lc=call->core; + + call->current_params.audio_codec = NULL; + call->current_params.video_codec = NULL; + LinphoneAddress *me=linphone_core_get_primary_contact_parsed(lc); char *cname; bool_t use_arc=linphone_core_adaptive_rate_control_enabled(lc); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 9a73d0aa6..802afe725 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2070,7 +2070,7 @@ int linphone_core_start_invite(LinphoneCore *lc, LinphoneCall *call, LinphonePro sal_op_set_contact(call->op, contact); ms_free(contact); } - + linphone_core_stop_dtmf_stream(lc); linphone_call_init_media_streams(call); if (lc->ringstream==NULL) audio_stream_prepare_sound(call->audiostream,lc->sound_conf.play_sndcard,lc->sound_conf.capt_sndcard); @@ -4393,7 +4393,7 @@ void linphone_core_refresh_registers(LinphoneCore* lc) { elem=linphone_core_get_proxy_config_list(lc); for(;elem!=NULL;elem=elem->next){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data; - if (linphone_proxy_config_register_enabled(cfg) ) { + if (linphone_proxy_config_register_enabled(cfg) && linphone_proxy_config_get_expires(cfg)>0) { linphone_proxy_config_refresh_register(cfg); } } @@ -4403,7 +4403,7 @@ void __linphone_core_invalidate_registers(LinphoneCore* lc){ const MSList *elem=linphone_core_get_proxy_config_list(lc); for(;elem!=NULL;elem=elem->next){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data; - if (linphone_proxy_config_register_enabled(cfg) ) { + if (linphone_proxy_config_register_enabled(cfg)) { linphone_proxy_config_edit(cfg); linphone_proxy_config_done(cfg); } @@ -4782,7 +4782,7 @@ void linphone_core_init_default_params(LinphoneCore*lc, LinphoneCallParams *para params->in_conference=FALSE; } -void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float cx, float cy) { +void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float* cx, float* cy) { VideoStream* vstream = call->videostream; float zoom[3]; @@ -4790,18 +4790,18 @@ void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float cx, f zoom_factor = 1; float halfsize = 0.5 * 1.0 / zoom_factor; - if ((cx - halfsize) < 0) - cx = 0 + halfsize; - if ((cx + halfsize) > 1) - cx = 1 - halfsize; - if ((cy - halfsize) < 0) - cy = 0 + halfsize; - if ((cy + halfsize) > 1) - cy = 1 - halfsize; + if ((*cx - halfsize) < 0) + *cx = 0 + halfsize; + if ((*cx + halfsize) > 1) + *cx = 1 - halfsize; + if ((*cy - halfsize) < 0) + *cy = 0 + halfsize; + if ((*cy + halfsize) > 1) + *cy = 1 - halfsize; zoom[0] = zoom_factor; - zoom[1] = cx; - zoom[2] = cy; + zoom[1] = *cx; + zoom[2] = *cy; ms_filter_call_method(vstream->output, MS_VIDEO_DISPLAY_ZOOM, &zoom); } diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index a5a1e8c0c..bd10556a0 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -183,6 +183,8 @@ char * linphone_call_log_to_str(LinphoneCallLog *cl); struct _LinphoneCallParams; typedef struct _LinphoneCallParams LinphoneCallParams; +const PayloadType* linphone_call_params_get_used_audio_codec(const LinphoneCallParams *cp); +const PayloadType* linphone_call_params_get_used_video_codec(const LinphoneCallParams *cp); LinphoneCallParams * linphone_call_params_copy(const LinphoneCallParams *cp); void linphone_call_params_enable_video(LinphoneCallParams *cp, bool_t enabled); bool_t linphone_call_params_video_enabled(const LinphoneCallParams *cp); @@ -786,13 +788,13 @@ const MSList *linphone_core_get_video_codecs(const LinphoneCore *lc); int linphone_core_set_video_codecs(LinphoneCore *lc, MSList *codecs); -bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, PayloadType *pt); +bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const PayloadType *pt); int linphone_core_enable_payload_type(LinphoneCore *lc, PayloadType *pt, bool_t enable); PayloadType* linphone_core_find_payload_type(LinphoneCore* lc, const char* type, int rate) ; -int linphone_core_get_payload_type_number(LinphoneCore *lc, PayloadType *pt); +int linphone_core_get_payload_type_number(LinphoneCore *lc, const PayloadType *pt); const char *linphone_core_get_payload_type_description(LinphoneCore *lc, PayloadType *pt); @@ -1132,7 +1134,7 @@ typedef struct LinphoneTunnel LinphoneTunnel; */ LinphoneTunnel *linphone_core_get_tunnel(LinphoneCore *lc); - void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float cx, float cy); +void linphone_call_zoom_video(LinphoneCall* call, float zoom_factor, float* cx, float* cy); #ifdef __cplusplus } diff --git a/coreapi/misc.c b/coreapi/misc.c index 41d4efac8..881b88eb6 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -181,12 +181,12 @@ static void payload_type_set_enable(PayloadType *pt,int value) else payload_type_unset_flag(pt,PAYLOAD_TYPE_ENABLED); } -static bool_t payload_type_enabled(PayloadType *pt) { +static bool_t payload_type_enabled(const PayloadType *pt) { return (((pt)->flags & PAYLOAD_TYPE_ENABLED)!=0); } -bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, PayloadType *pt){ - if (ms_list_find(lc->codecs_conf.audio_codecs,pt) || ms_list_find(lc->codecs_conf.video_codecs,pt)){ +bool_t linphone_core_payload_type_enabled(LinphoneCore *lc, const PayloadType *pt){ + if (ms_list_find(lc->codecs_conf.audio_codecs, (PayloadType*) pt) || ms_list_find(lc->codecs_conf.video_codecs, (PayloadType*)pt)){ return payload_type_enabled(pt); } ms_error("Getting enablement status of codec not in audio or video list of PayloadType !"); @@ -202,7 +202,7 @@ int linphone_core_enable_payload_type(LinphoneCore *lc, PayloadType *pt, bool_t return -1; } -int linphone_core_get_payload_type_number(LinphoneCore *lc, PayloadType *pt){ +int linphone_core_get_payload_type_number(LinphoneCore *lc, const PayloadType *pt){ return payload_type_get_number(pt); } diff --git a/coreapi/private.h b/coreapi/private.h index ec57eaf9c..a790276dd 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -68,6 +68,8 @@ struct _LinphoneCallParams{ LinphoneCall *referer; /*in case this call creation is consecutive to an incoming transfer, this points to the original call */ int audio_bw; /* bandwidth limit for audio stream */ LinphoneMediaEncryption media_encryption; + PayloadType *audio_codec; + PayloadType *video_codec; bool_t has_video; bool_t real_early_media; /*send real media even during early media (for outgoing calls)*/ bool_t in_conference; /*in conference mode */ diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 49e0ec3cc..cf7675807 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -218,7 +218,7 @@ void linphone_proxy_config_enableregister(LinphoneProxyConfig *obj, bool_t val){ * Sets the registration expiration time in seconds. **/ void linphone_proxy_config_expires(LinphoneProxyConfig *obj, int val){ - if (val<=0) val=600; + if (val<0) val=600; obj->expires=val; } diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index f21f43654..6a4e2b284 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -734,7 +734,7 @@ static int send_notify_for_refer(int did, const char *sipfrag){ eXosip_call_build_notify(did,EXOSIP_SUBCRSTATE_ACTIVE,&msg); if (msg==NULL){ eXosip_unlock(); - ms_error("Could not build NOTIFY for refer."); + ms_warning("Could not build NOTIFY for refer."); return -1; } osip_message_set_content_type(msg,"message/sipfrag"); @@ -760,7 +760,10 @@ int sal_call_notify_refer_state(SalOp *h, SalOp *newcall){ } }else{ if (!newcall->terminated){ - send_notify_for_refer(h->did,"SIP/2.0 200 Ok\r\n"); + if (send_notify_for_refer(h->did,"SIP/2.0 200 Ok\r\n")==-1){ + /* we need previous notify transaction to complete, so buffer the request for later*/ + h->sipfrag_pending="SIP/2.0 200 Ok\r\n"; + } } } } @@ -1536,7 +1539,7 @@ static void process_refer(Sal *sal, SalOp *op, eXosip_event_t *ev){ } } -void process_notify(Sal *sal, eXosip_event_t *ev){ +static void process_notify(Sal *sal, eXosip_event_t *ev){ osip_header_t *h=NULL; char *from=NULL; SalOp *op=find_op(sal,ev); @@ -1900,6 +1903,18 @@ static void other_request_reply(Sal *sal,eXosip_event_t *ev){ } } +static void process_in_call_reply(Sal *sal, eXosip_event_t *ev){ + SalOp *op=find_op(sal,ev); + if (ev->response){ + if (ev->request && strcmp(osip_message_get_method(ev->request),"NOTIFY")==0){ + if (op->sipfrag_pending){ + send_notify_for_refer(op->did,op->sipfrag_pending); + op->sipfrag_pending=NULL; + } + } + } +} + static bool_t process_event(Sal *sal, eXosip_event_t *ev){ ms_message("linphone process event get a message %d\n",ev->type); switch(ev->type){ @@ -1961,6 +1976,10 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){ return process_authentication(sal,ev); } break; + case EXOSIP_CALL_MESSAGE_ANSWERED: + ms_message("EXOSIP_CALL_MESSAGE_ANSWERED "); + process_in_call_reply(sal,ev); + break; case EXOSIP_IN_SUBSCRIPTION_NEW: ms_message("CALL_IN_SUBSCRIPTION_NEW "); sal_exosip_subscription_recv(sal,ev); diff --git a/coreapi/sal_eXosip2.h b/coreapi/sal_eXosip2.h index 75dd7e58c..f85ddfa1c 100644 --- a/coreapi/sal_eXosip2.h +++ b/coreapi/sal_eXosip2.h @@ -66,6 +66,7 @@ struct SalOp{ char *replaces; char *referred_by; const SalAuthInfo *auth_info; + const char *sipfrag_pending; bool_t supports_session_timers; bool_t sdp_offering; bool_t reinvite; diff --git a/gtk/loginframe.c b/gtk/loginframe.c index f1a67d9d5..08b90fe45 100644 --- a/gtk/loginframe.c +++ b/gtk/loginframe.c @@ -49,6 +49,7 @@ static gboolean do_login_noprompt(LinphoneProxyConfig *cfg){ tmp=linphone_address_as_string (addr); do_login(ssctx,tmp,NULL); linphone_address_destroy(addr); + linphone_gtk_load_identities(); return FALSE; } @@ -62,14 +63,14 @@ void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ int nettype; const char *passwd=NULL; - + if (linphone_core_get_download_bandwidth(lc)==512 && linphone_core_get_upload_bandwidth(lc)==512) nettype=NetworkKindOpticalFiber; else nettype=NetworkKindAdsl; gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"login_internet_kind")),nettype); - gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"internet_kind")),nettype); - + //gtk_combo_box_set_active(GTK_COMBO_BOX(linphone_gtk_get_widget(mw,"internet_kind")),nettype); + if (linphone_gtk_get_ui_config_int("automatic_login",0) ){ g_timeout_add(250,(GSourceFunc)do_login_noprompt,cfg); return; @@ -88,7 +89,6 @@ void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg){ gtk_widget_hide(linphone_gtk_get_widget(mw,"disconnect_item")); gtk_widget_hide(linphone_gtk_get_widget(mw,"main_frame")); gtk_widget_show(linphone_gtk_get_widget(mw,"login_frame")); - gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"main_menu"),FALSE); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"options_menu"),FALSE); str=g_strdup_printf(_("Please enter login information for %s"),linphone_proxy_config_get_domain(cfg)); gtk_label_set_text(GTK_LABEL(label),str); @@ -118,7 +118,6 @@ void linphone_gtk_exit_login_frame(void){ GtkWidget *mw=linphone_gtk_get_main_window(); gtk_widget_show(linphone_gtk_get_widget(mw,"main_frame")); 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,"options_menu"),TRUE); gtk_widget_show(linphone_gtk_get_widget(mw,"disconnect_item")); } diff --git a/gtk/main.c b/gtk/main.c index 819195268..b7ef5869f 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -774,13 +774,12 @@ void linphone_gtk_answer_clicked(GtkWidget *button){ void linphone_gtk_enable_video(GtkWidget *w){ gboolean val=gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(w)); - GtkWidget *selfview_item=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"selfview_item"); + //GtkWidget *selfview_item=linphone_gtk_get_widget(linphone_gtk_get_main_window(),"selfview_item"); LinphoneVideoPolicy policy={0}; policy.automatically_initiate=policy.automatically_accept=val; linphone_core_enable_video(linphone_gtk_get_core(),TRUE,TRUE); linphone_core_set_video_policy(linphone_gtk_get_core(),&policy); - gtk_widget_set_sensitive(selfview_item,val); if (val){ linphone_core_enable_video_preview(linphone_gtk_get_core(), linphone_gtk_get_ui_config_int("videoselfview",VIDEOSELFVIEW_DEFAULT)); @@ -1418,7 +1417,6 @@ static void linphone_gtk_check_menu_items(void){ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(linphone_gtk_get_widget( linphone_gtk_get_main_window(),"enable_video_item")), video_enabled); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(selfview_item),selfview); - gtk_widget_set_sensitive(selfview_item,video_enabled); } static gboolean linphone_gtk_can_manage_accounts(){ diff --git a/gtk/main.ui b/gtk/main.ui index 96647fe4d..eebb05e75 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -498,7 +498,7 @@ True False False - Enable video + Always start video True diff --git a/java/common/org/linphone/core/LinphoneCall.java b/java/common/org/linphone/core/LinphoneCall.java index 24606ada7..4d8e23d80 100644 --- a/java/common/org/linphone/core/LinphoneCall.java +++ b/java/common/org/linphone/core/LinphoneCall.java @@ -31,7 +31,7 @@ public interface LinphoneCall { * */ static class State { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); private final int mValue; public final int value() {return mValue;} @@ -119,7 +119,7 @@ public interface LinphoneCall { */ public static final State CallReleased = new State(18,"CallReleased"); - @SuppressWarnings("unchecked") + private State(int value,String stringValue) { mValue = value; values.addElement(this); diff --git a/java/common/org/linphone/core/LinphoneCallLog.java b/java/common/org/linphone/core/LinphoneCallLog.java index dbd2bcc27..015f071df 100644 --- a/java/common/org/linphone/core/LinphoneCallLog.java +++ b/java/common/org/linphone/core/LinphoneCallLog.java @@ -31,7 +31,7 @@ public interface LinphoneCallLog { * */ static class CallStatus { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); private final int mValue; private final String mStringValue; @@ -52,7 +52,7 @@ public interface LinphoneCallLog { */ public final static CallStatus Declined = new CallStatus(3,"Declined"); - @SuppressWarnings("unchecked") + private CallStatus(int value,String stringValue) { mValue = value; values.addElement(this); diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 88db6a590..f33415b46 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -18,8 +18,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; - -import java.util.List; import java.util.Vector; import org.linphone.core.LinphoneCallParams; @@ -34,7 +32,7 @@ public interface LinphoneCore { * linphone core states */ static public class GlobalState { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); /** * Off @@ -56,7 +54,7 @@ public interface LinphoneCore { private final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private GlobalState(int value,String stringValue) { mValue = value; values.addElement(this); @@ -79,7 +77,7 @@ public interface LinphoneCore { * */ static public class RegistrationState { - @SuppressWarnings("unchecked") + private static Vector values = new Vector(); /** * None @@ -104,7 +102,7 @@ public interface LinphoneCore { private final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private RegistrationState(int value,String stringValue) { mValue = value; values.addElement(this); @@ -127,7 +125,7 @@ public interface LinphoneCore { * */ static public class FirewallPolicy { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); /** * No firewall is assumed. @@ -145,7 +143,7 @@ public interface LinphoneCore { private final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private FirewallPolicy(int value,String stringValue) { mValue = value; values.addElement(this); @@ -187,7 +185,7 @@ public interface LinphoneCore { * */ static public class MediaEncryption { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); /** * None @@ -204,7 +202,7 @@ public interface LinphoneCore { protected final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private MediaEncryption(int value,String stringValue) { mValue = value; values.addElement(this); @@ -226,7 +224,7 @@ public interface LinphoneCore { * EC Calibrator Status */ static public class EcCalibratorStatus { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); public static final int IN_PROGRESS_STATUS=0; public static final int DONE_STATUS=1; @@ -247,7 +245,7 @@ public interface LinphoneCore { private final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private EcCalibratorStatus(int value,String stringValue) { mValue = value; values.addElement(this); @@ -411,8 +409,7 @@ public interface LinphoneCore { /** * @return a list of LinphoneCallLog */ - @SuppressWarnings("unchecked") - public List getCallLogs(); + public LinphoneCallLog[] getCallLogs(); /** * This method is called by the application to notify the Linphone core library when network is reachable. @@ -693,7 +690,7 @@ public interface LinphoneCore { int getConferenceSize(); void terminateAllCalls(); - @SuppressWarnings("unchecked") List getCalls(); + LinphoneCall[] getCalls(); int getCallsNb(); diff --git a/java/common/org/linphone/core/LinphoneCoreFactory.java b/java/common/org/linphone/core/LinphoneCoreFactory.java index b5beba393..fe35b257f 100644 --- a/java/common/org/linphone/core/LinphoneCoreFactory.java +++ b/java/common/org/linphone/core/LinphoneCoreFactory.java @@ -36,7 +36,7 @@ abstract public class LinphoneCoreFactory { factoryName = className; } - @SuppressWarnings("unchecked") + public static final synchronized LinphoneCoreFactory instance() { try { if (theLinphoneCoreFactory == null) { diff --git a/java/common/org/linphone/core/LinphoneFriend.java b/java/common/org/linphone/core/LinphoneFriend.java index 88bcbab8e..d4f0e7503 100644 --- a/java/common/org/linphone/core/LinphoneFriend.java +++ b/java/common/org/linphone/core/LinphoneFriend.java @@ -36,7 +36,7 @@ public interface LinphoneFriend { */ static class SubscribePolicy { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); protected final int mValue; private final String mStringValue; @@ -54,7 +54,7 @@ public interface LinphoneFriend { */ public final static SubscribePolicy SPAccept = new SubscribePolicy(2,"SPAccept"); - @SuppressWarnings("unchecked") + private SubscribePolicy(int value,String stringValue) { mValue = value; values.addElement(this); diff --git a/java/common/org/linphone/core/OnlineStatus.java b/java/common/org/linphone/core/OnlineStatus.java index 8a0da6ce2..a1b36ab37 100644 --- a/java/common/org/linphone/core/OnlineStatus.java +++ b/java/common/org/linphone/core/OnlineStatus.java @@ -27,7 +27,7 @@ import java.util.Vector; */ public class OnlineStatus { - @SuppressWarnings("unchecked") + static private Vector values = new Vector(); /** * Offline @@ -77,7 +77,7 @@ public class OnlineStatus { protected final int mValue; private final String mStringValue; - @SuppressWarnings("unchecked") + private OnlineStatus(int value,String stringValue) { mValue = value; values.addElement(this); diff --git a/linphone.iss.in b/linphone.iss.in index b0cbd08f0..de88854d3 100644 --- a/linphone.iss.in +++ b/linphone.iss.in @@ -13,6 +13,7 @@ OutputBaseFilename=setup Compression=lzma SolidCompression=yes ShowLanguageDialog=yes +UninstallDisplayIcon={app}\bin\linphone.exe [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" diff --git a/m4/readline.m4 b/m4/readline.m4 index 8c4e18566..13a217fda 100644 --- a/m4/readline.m4 +++ b/m4/readline.m4 @@ -22,15 +22,15 @@ if test "$readline_prefix" != "none"; then AC_CHECK_HEADERS(readline.h readline/readline.h, readline_h_found=yes) AC_CHECK_HEADERS(history.h readline/history.h) - AC_CHECK_LIB(readline, readline, [readline_libs_found=yes],[],[-lncurses]) + AC_CHECK_LIB(readline, readline, [readline_libs_found=yes],[],[]) LIBS=$LIBS_save CPPFLAGS=$CPPFLAGS_save if test "$readline_libs_found$readline_h_found" != "yesyes" ; then - AC_MSG_WARN("Could not find libreadline headers or library, linphonec will have limited prompt features") + AC_MSG_WARN([Could not find libreadline headers or library, linphonec will have limited prompt features]) else - READLINE_LIBS="$READLINE_LIBS -lreadline -lncurses" + READLINE_LIBS="$READLINE_LIBS -lreadline " fi diff --git a/mediastreamer2 b/mediastreamer2 index 153983f60..f08143a15 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 153983f60d0b1865bd1e6f164d7f48ff4fc4e7eb +Subproject commit f08143a159df482c84e71307071da6655910ad4d