Commit ee341e2e authored by Sylvain Berfini's avatar Sylvain Berfini 🎩
Browse files

Merge

parents 0e4136de 949b3cd8
......@@ -417,12 +417,17 @@ static void call_updating(SalOp *op){
lc->current_call=call;
}else{
prevstate=call->state;
if(lc->vtable.display_status)
lc->vtable.display_status(lc,_("Call has been updated by remote..."));
linphone_call_set_state(call, LinphoneCallUpdatedByRemote,"Call updated by remote");
}
}
/*accept the modification (sends a 200Ok)*/
sal_call_accept(op);
<<<<<<< HEAD
=======
>>>>>>> 949b3cd84135d234abab27a023885ad977f715c9
if (prevstate!=LinphoneCallIdle){
linphone_call_set_state (call,prevstate,"Connected (streams running)");
}
......
......@@ -853,6 +853,7 @@ static void parametrize_equalizer(LinphoneCore *lc, AudioStream *st){
void _post_configure_audio_stream(AudioStream *st, LinphoneCore *lc, bool_t muted){
float mic_gain=lp_config_get_float(lc->config,"sound","mic_gain",1);
float spk_gain=lp_config_get_float(lc->config,"sound","speaker_gain",1);
float thres = 0;
float recv_gain;
float ng_thres=lp_config_get_float(lc->config,"sound","ng_thres",0.05);
......@@ -868,6 +869,7 @@ void _post_configure_audio_stream(AudioStream *st, LinphoneCore *lc, bool_t mute
if (recv_gain != 0) {
linphone_core_set_playback_gain_db (lc,recv_gain);
}
if (st->volsend){
ms_filter_call_method(st->volsend,MS_VOLUME_REMOVE_DC,&dc_removal);
float speed=lp_config_get_float(lc->config,"sound","el_speed",-1);
......@@ -894,7 +896,10 @@ void _post_configure_audio_stream(AudioStream *st, LinphoneCore *lc, bool_t mute
if (st->volrecv){
/* parameters for a limited noise-gate effect, using echo limiter threshold */
float floorgain = 1/mic_gain;
ms_filter_call_method(st->volrecv,MS_VOLUME_SET_NOISE_GATE_THRESHOLD,&thres);
int spk_agc=lp_config_get_int(lc->config,"sound","speaker_agc_enabled",0);
ms_filter_call_method(st->volrecv, MS_VOLUME_ENABLE_AGC, &spk_agc);
ms_filter_call_method(st->volrecv, MS_VOLUME_SET_GAIN, &spk_gain);
ms_filter_call_method(st->volrecv,MS_VOLUME_SET_NOISE_GATE_THRESHOLD,&ng_thres);
ms_filter_call_method(st->volrecv,MS_VOLUME_SET_NOISE_GATE_FLOORGAIN,&floorgain);
}
parametrize_equalizer(lc,st);
......@@ -1083,7 +1088,7 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna
lc->previewstream=NULL;
}
call->current_params.has_video=FALSE;
if (vstream && vstream->dir!=SalStreamInactive && vstream->port!=0) {
if (vstream!=NULL && vstream->dir!=SalStreamInactive && vstream->port!=0) {
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){
......@@ -1092,7 +1097,9 @@ static void linphone_call_start_video_stream(LinphoneCall *call, const char *cna
bool_t is_inactive=FALSE;
call->current_params.has_video=TRUE;
video_stream_enable_adaptive_bitrate_control(call->videostream,
linphone_core_adaptive_rate_control_enabled(lc));
video_stream_set_sent_video_size(call->videostream,linphone_core_get_preferred_video_size(lc));
video_stream_enable_self_view(call->videostream,lc->video_conf.selfview);
if (lc->video_window_id!=0)
......@@ -1158,13 +1165,15 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut
cname=linphone_address_as_string_uri_only(me);
#if defined(VIDEO_ENABLED)
if (vstream && vstream->dir!=SalStreamInactive && vstream->payloads!=NULL){
if (vstream!=NULL && vstream->dir!=SalStreamInactive && vstream->payloads!=NULL){
/*when video is used, do not make adaptive rate control on audio, it is stupid.*/
use_arc=FALSE;
}
#endif
linphone_call_start_audio_stream(call,cname,all_inputs_muted,send_ringbacktone,use_arc);
if (call->videostream!=NULL) linphone_call_start_video_stream(call,cname,all_inputs_muted);
if (call->videostream!=NULL) {
linphone_call_start_video_stream(call,cname,all_inputs_muted);
}
call->all_muted=all_inputs_muted;
call->playing_ringbacktone=send_ringbacktone;
......
......@@ -383,6 +383,8 @@ static void sound_config_read(LinphoneCore *lc)
MSSndCard *card=ms_alsa_card_new_custom(devid,devid);
ms_snd_card_manager_add_card(ms_snd_card_manager_get(),card);
}
tmp=lp_config_get_int(lc->config,"sound","alsa_forced_rate",-1);
ms_alsa_card_set_forced_sample_rate(tmp);
#endif
/* retrieve all sound devices */
build_sound_devices_table(lc);
......@@ -814,7 +816,7 @@ void linphone_core_enable_adaptive_rate_control(LinphoneCore *lc, bool_t enabled
* See linphone_core_enable_adaptive_rate_control().
**/
bool_t linphone_core_adaptive_rate_control_enabled(const LinphoneCore *lc){
return lp_config_get_int(lc->config,"net","adaptive_rate_control",FALSE);
return lp_config_get_int(lc->config,"net","adaptive_rate_control",TRUE);
}
bool_t linphone_core_rtcp_enabled(const LinphoneCore *lc){
......@@ -973,6 +975,7 @@ void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const
static void misc_config_read (LinphoneCore *lc) {
LpConfig *config=lc->config;
lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15);
lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS);
}
static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, const char *config_path,
......@@ -4300,6 +4303,11 @@ void linphone_core_stop_dtmf_stream(LinphoneCore* lc) {
lc->ringstream=NULL;
}
int linphone_core_get_max_calls(LinphoneCore *lc) {
return lc->max_calls;
}
typedef struct Hook{
LinphoneCoreIterateHook fun;
void *data;
......
......@@ -1030,6 +1030,8 @@ float linphone_core_get_conference_local_input_volume(LinphoneCore *lc);
int linphone_core_terminate_conference(LinphoneCore *lc);
int linphone_core_get_conference_size(LinphoneCore *lc);
int linphone_core_get_max_calls(LinphoneCore *lc);
#ifdef __cplusplus
}
#endif
......
......@@ -1205,6 +1205,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEn
,jobject thiz
,jlong lc
,jobject obj) {
jobject oldWindow = (jobject) linphone_core_get_native_preview_window_id((LinphoneCore*)lc);
if (oldWindow != NULL) {
env->DeleteGlobalRef(oldWindow);
}
if (obj != NULL) {
obj = env->NewGlobalRef(obj);
}
linphone_core_set_native_preview_window_id((LinphoneCore*)lc,(unsigned long)obj);
}
......@@ -1499,5 +1506,10 @@ extern "C" void msandroid_hack_speaker_state(bool speakerOn);
extern "C" void Java_org_linphone_LinphoneManager_hackSpeakerState(JNIEnv* env,jobject thiz,jboolean speakerOn){
msandroid_hack_speaker_state(speakerOn);
}
// End Galaxy S hack functions
extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getMaxCalls(JNIEnv *env,jobject thiz,jlong pCore) {
return (jint) linphone_core_get_max_calls((LinphoneCore *) pCore);
}
......@@ -467,6 +467,7 @@ struct _LinphoneCore
bool_t use_preview_window;
int device_rotation;
bool_t ringstream_autorelease;
int max_calls;
};
bool_t linphone_core_can_we_add_call(LinphoneCore *lc);
......
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy toplevel-contextual -->
<object class="GtkAdjustment" id="adjustment1">
<property name="lower">500</property>
<property name="upper">3001</property>
......@@ -214,8 +213,6 @@
<property name="can_focus">True</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment1</property>
<signal name="value-changed" handler="linphone_gtk_mtu_changed" swapped="no"/>
</object>
......@@ -334,8 +331,6 @@
<property name="invisible_char_set">True</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment7</property>
<signal name="value-changed" handler="linphone_gtk_update_my_port" swapped="no"/>
</object>
......@@ -353,8 +348,6 @@
<property name="invisible_char_set">True</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment2</property>
<signal name="value-changed" handler="linphone_gtk_video_port_changed" swapped="no"/>
</object>
......@@ -374,8 +367,6 @@
<property name="invisible_char_set">True</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment3</property>
<signal name="value-changed" handler="linphone_gtk_audio_port_changed" swapped="no"/>
</object>
......@@ -515,8 +506,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="linphone_gtk_nat_address_changed" swapped="no"/>
</object>
<packing>
......@@ -587,8 +576,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="linphone_gtk_stun_server_changed" swapped="no"/>
</object>
<packing>
......@@ -756,8 +743,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="editing-done" handler="linphone_gtk_alsa_special_device_changed" swapped="no"/>
</object>
<packing>
......@@ -1108,8 +1093,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="linphone_gtk_update_my_contact" swapped="no"/>
</object>
<packing>
......@@ -1148,8 +1131,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<signal name="changed" handler="linphone_gtk_update_my_contact" swapped="no"/>
</object>
<packing>
......@@ -1167,8 +1148,6 @@
<property name="editable">False</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
</object>
<packing>
<property name="left_attach">1</property>
......@@ -1220,13 +1199,14 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<child>
<object class="GtkTreeView" id="proxy_list">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1"/>
</child>
</object>
</child>
</object>
......@@ -1638,8 +1618,6 @@ virtual network !</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<property name="shadow_type">out</property>
<child>
<object class="GtkTreeView" id="codec_list">
......@@ -1647,6 +1625,9 @@ virtual network !</property>
<property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="has_tooltip">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/>
</child>
</object>
</child>
</object>
......@@ -1843,7 +1824,7 @@ virtual network !</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="n_rows">2</property>
<property name="n_rows">3</property>
<property name="n_columns">2</property>
<child>
<object class="GtkSpinButton" id="upload_bw">
......@@ -1853,8 +1834,6 @@ virtual network !</property>
<property name="tooltip_text" translatable="yes">0 stands for "unlimited"</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment5</property>
<signal name="value-changed" handler="linphone_gtk_upload_bw_changed" swapped="no"/>
</object>
......@@ -1863,6 +1842,8 @@ virtual network !</property>
<property name="right_attach">2</property>
<property name="top_attach">1</property>
<property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
......@@ -1873,14 +1854,14 @@ virtual network !</property>
<property name="tooltip_text" translatable="yes">0 stands for "unlimited"</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="primary_icon_sensitive">True</property>
<property name="secondary_icon_sensitive">True</property>
<property name="adjustment">adjustment6</property>
<signal name="value-changed" handler="linphone_gtk_download_bw_changed" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_EXPAND</property>
</packing>
</child>
<child>
......@@ -1905,6 +1886,41 @@ virtual network !</property>
<property name="justify">right</property>
</object>
</child>
<child>
<object class="GtkCheckButton" id="adaptive_rate_control">
<property name="label" translatable="yes">Enable adaptive rate control</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_action_appearance">False</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_adaptive_rate_control_toggled" swapped="no"/>
</object>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">&lt;i&gt;Adaptive rate control is a technique to dynamically guess the available bandwidth during a call.&lt;/i&gt;</property>
<property name="use_markup">True</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
</child>
</object>
</child>
</object>
......
......@@ -453,6 +453,11 @@ void linphone_gtk_upload_bw_changed(GtkWidget *w){
linphone_gtk_check_codec_bandwidth(v);
}
void linphone_gtk_adaptive_rate_control_toggled(GtkToggleButton *button){
gboolean active=gtk_toggle_button_get_active(button);
linphone_core_enable_adaptive_rate_control(linphone_gtk_get_core(),active);
}
static void linphone_gtk_codec_move(GtkWidget *button, int dir){
GtkTreeView *v=GTK_TREE_VIEW(linphone_gtk_get_widget(gtk_widget_get_toplevel(button),"codec_list"));
GtkTreeSelection *sel=gtk_tree_view_get_selection(v);
......@@ -899,6 +904,8 @@ void linphone_gtk_show_parameters(void){
linphone_core_get_download_bandwidth(lc));
gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb,"upload_bw")),
linphone_core_get_upload_bandwidth(lc));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb,"adaptive_rate_control")),
linphone_core_adaptive_rate_control_enabled(lc));
/* UI CONFIG */
......
......@@ -621,4 +621,7 @@ public interface LinphoneCore {
void transferCallToAnother(LinphoneCall callToTransfer, LinphoneCall destination);
LinphoneCall findCallFromUri(String uri);
int getMaxCalls();
}
......@@ -4,9 +4,18 @@ AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([LP_CHECK_OSIP2])
case $target_os in
*darwin*)
OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation "
case $host_alias in
i386-apple*)
OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork"
;;
armv6-apple*)
OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork"
;;
armv7-apple*)
OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork"
;;
x86_64-apple*)
OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation"
;;
esac
......
mediastreamer2 @ 00dfc7dd
Subproject commit 3e62df330823c9efefaf314e894a6a7867f9ff76
Subproject commit 00dfc7dd6aab93dcc9b81527370842b38fc3987d
oRTP @ 3256179b
Subproject commit 0a878baa150133e35acdfb7082ccc99a54be41fe
Subproject commit 3256179b911975ce7d3556f8e2c00b21881a84d2
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment