diff --git a/configure.ac b/configure.ac index 6e5e0da4275df4e965953056bbc552066617c5d0..94e23c59d30ae1c45561707c80df6feb47dd6e65 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([linphone],[3.4.99.5],[linphone-developers@nongnu.org]) +AC_INIT([linphone],[3.5],[linphone-developers@nongnu.org]) AC_CANONICAL_SYSTEM AC_CONFIG_SRCDIR([coreapi/linphonecore.c]) diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index 301c059767ed404b407328cdefcead48a6dca6fb..20ab34878fd118dbd7deda536a340932d5de0cf9 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -9,9 +9,7 @@ linphone_includedir=$(includedir)/linphone linphone_include_HEADERS=linphonecore.h linphonefriend.h linphonecore_utils.h ../config.h lpconfig.h sipsetup.h INCLUDES = \ - -I$(top_srcdir)\ - $(MEDIASTREAMER_CFLAGS)\ - $(TUNNEL_CFLAGS) + -I$(top_srcdir) lib_LTLIBRARIES=liblinphone.la @@ -42,7 +40,7 @@ liblinphone_la_SOURCES=\ linphone_tunnel_manager.h if BUILD_TUNNEL -liblinphone_la_SOURCES+=TunnelManager.cc TunnelManager.hh linphone_tunnel_manager.c +liblinphone_la_SOURCES+=TunnelManager.cc TunnelManager.hh linphone_tunnel_manager.cc endif @@ -83,3 +81,4 @@ AM_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE \ $(VIDEO_CFLAGS) \ $(TUNNEL_CFLAGS) +AM_CXXFLAGS=$(AM_CFLAGS) diff --git a/coreapi/TunnelManager.cc b/coreapi/TunnelManager.cc index f1fa17bf7fbd2e2d10e923791294f581b3106556..9d4ab7c35c4e28c587e29d889ea4dc1b8bcee938 100644 --- a/coreapi/TunnelManager.cc +++ b/coreapi/TunnelManager.cc @@ -68,8 +68,7 @@ int TunnelManager::eXosipSelect(int max_fds, fd_set *s1, fd_set *s2, fd_set *s3, TunnelManager* lTunnelMgr=(TunnelManager*)userdata; if (tv!=0 && tv->tv_sec){ /*this is the select from udp.c, the one that is interesting to us*/ - unsigned int i; - fd_set tmp; + int i; int udp_fd=eXosip_get_udp_socket(); int controlfd=-1; @@ -156,13 +155,13 @@ void TunnelManager::setCallback(StateCallback cb, void *userdata) { mCallbackData=userdata; } -static void sCloseRtpTransport(void *userData, RtpTransport *t){ - ((TunnelManager::TunnelManager *) userData)->closeRtpTransport(t); +static void sCloseRtpTransport(RtpTransport *t, void *userData){ + TunnelSocket *s=(TunnelSocket*)userData; + TunnelManager::TunnelManager *manager=(TunnelManager::TunnelManager*)s->getUserPointer(); + manager->closeRtpTransport(t, s); } -void TunnelManager::closeRtpTransport(RtpTransport *t){ - TunnelSocket *socket=(TunnelSocket *) t->data; - mTransports.remove(t); - mTunnelClient->closeSocket(socket); +void TunnelManager::closeRtpTransport(RtpTransport *t, TunnelSocket *s){ + mTunnelClient->closeSocket(s); ms_free(t); } @@ -171,14 +170,14 @@ static RtpTransport *sCreateRtpTransport(void* userData, int port){ } RtpTransport *TunnelManager::createRtpTransport(int port){ + TunnelSocket *socket=mTunnelClient->createSocket(port); + socket->setUserPointer(this); RtpTransport *t=ms_new0(RtpTransport,1); - t->data=mTunnelClient->createSocket(port); t->t_getsocket=NULL; t->t_recvfrom=customRecvfrom; t->t_sendto=customSendto; - t->close_fn=sCloseRtpTransport; - t->close_data=this; - mTransports.push_back(t); + t->t_close=sCloseRtpTransport; + t->data=socket; return t; } @@ -222,9 +221,9 @@ int TunnelManager::customRecvfrom(struct _RtpTransport *t, mblk_t *msg, int flag TunnelManager::TunnelManager(LinphoneCore* lc) :TunnelClientController() ,mCore(lc) -,mEnabled(false) ,mSipSocket(NULL) ,mCallback(NULL) +,mEnabled(false) ,mTunnelClient(NULL) ,mAutoDetectStarted(false) { diff --git a/coreapi/TunnelManager.hh b/coreapi/TunnelManager.hh index 20bb75d3d653787e4856bf0d938b0a7698eb2460..b6bc46723a884b35e22f9b8ef727df4234211cd0 100644 --- a/coreapi/TunnelManager.hh +++ b/coreapi/TunnelManager.hh @@ -115,7 +115,7 @@ class UdpMirrorClient; /** * Destroy the given RtpTransport. */ - void closeRtpTransport(RtpTransport *t); + void closeRtpTransport(RtpTransport *t, TunnelSocket *s); /** * Create an RtpTransport. @@ -128,7 +128,6 @@ class UdpMirrorClient; LinphoneCore *getLinphoneCore(); private: typedef std::list<UdpMirrorClient> UdpMirrorClientList; - typedef std::list<RtpTransport*> RtpTransportList; virtual bool isStarted(); virtual bool isReady() const; static int customSendto(struct _RtpTransport *t, mblk_t *msg , int flags, const struct sockaddr *to, socklen_t tolen); @@ -156,7 +155,6 @@ class UdpMirrorClient; void stopClient(); static Mutex sMutex; bool mAutoDetectStarted; - RtpTransportList mTransports; LinphoneRtpTransportFactories mTransportFactories; }; diff --git a/gtk/calllogs.c b/gtk/calllogs.c index 734496da354b18bd7b29bdb8e9406c6f9b5c2cb3..5ff2a08eb59d9555b391b0ae32aa22fc97079582 100644 --- a/gtk/calllogs.c +++ b/gtk/calllogs.c @@ -44,8 +44,8 @@ void linphone_gtk_call_log_update(GtkWidget *w){ gtk_tree_view_set_model(v,GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); fill_renderers(GTK_TREE_VIEW(linphone_gtk_get_widget(w,"logs_view"))); - gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), - create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); +// gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), +// create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); } gtk_list_store_clear (store); @@ -119,6 +119,10 @@ void linphone_gtk_history_row_activated(GtkWidget *treeview){ } } +void linphone_gtk_history_row_selected(GtkWidget *treeview){ + put_selection_to_uribar(treeview); +} + void linphone_gtk_clear_call_logs(GtkWidget *button){ linphone_core_clear_call_logs (linphone_gtk_get_core()); linphone_gtk_call_log_update(gtk_widget_get_toplevel(button)); @@ -152,8 +156,8 @@ GtkWidget * linphone_gtk_show_call_logs(void){ GtkWidget *w=(GtkWidget*)g_object_get_data(G_OBJECT(linphone_gtk_get_main_window()),"call_logs"); if (w==NULL){ w=linphone_gtk_create_window("call_logs"); - gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), - create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); +// gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"call_back_button")), +// create_pixmap (linphone_gtk_get_ui_config("callback_button","status-green.png"))); g_object_set_data(G_OBJECT(mw),"call_logs",w); g_signal_connect(G_OBJECT(w),"response",(GCallback)linphone_gtk_call_log_response,NULL); gtk_widget_show(w); diff --git a/gtk/main.c b/gtk/main.c index 4c918b18d3c914ece2ca94f0ce72e7528b933739..73e99cc964cf9fbc72239a0d559fdefb23ffa5a9 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -681,7 +681,11 @@ static void linphone_gtk_update_call_buttons(LinphoneCall *call){ gtk_widget_set_visible(button,!add_call); button=linphone_gtk_get_widget(mw,"add_call"); - gtk_widget_set_sensitive(button,start_active); + if (linphone_core_sound_resources_locked(lc) || (call && linphone_call_get_state(call)==LinphoneCallIncomingReceived)) { + gtk_widget_set_sensitive(button,FALSE); + } else { + gtk_widget_set_sensitive(button,start_active); + } gtk_widget_set_visible(button,add_call); gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),stop_active); diff --git a/gtk/main.ui b/gtk/main.ui index a94f5e55f06cae5cb2913d38d1e827561c996833..2cfe555e7db37a4e042d66bdb74033336859395c 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.22"/> + <!-- interface-naming-policy toplevel-contextual --> <object class="GtkWindow" id="dummy_conf_window"> <property name="can_focus">False</property> <child> @@ -651,6 +652,8 @@ <property name="invisible_char">â—</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="activate" handler="linphone_gtk_uri_bar_activate" swapped="no"/> </object> <packing> @@ -742,6 +745,8 @@ <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> <signal name="changed" handler="linphone_gtk_show_friends" swapped="no"/> </object> <packing> @@ -807,9 +812,6 @@ <signal name="cursor-changed" handler="linphone_gtk_contact_clicked" swapped="no"/> <signal name="row-activated" handler="linphone_gtk_contact_activated" swapped="no"/> <signal name="popup-menu" handler="linphone_gtk_popup_contact_menu" swapped="no"/> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> - </child> </object> </child> </object> @@ -835,6 +837,8 @@ <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> <signal name="activate" handler="linphone_gtk_directory_search_activate" swapped="no"/> <signal name="icon-press" handler="linphone_gtk_directory_search_activate" swapped="no"/> <signal name="focus-in-event" handler="linphone_gtk_directory_search_focus_in" swapped="no"/> @@ -1008,19 +1012,7 @@ </packing> </child> <child> - <object class="GtkButton" id="call_back_button"> - <property name="label" translatable="yes">Call</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_action_appearance">False</property> - <signal name="clicked" handler="linphone_gtk_call_log_callback" swapped="no"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> + <placeholder/> </child> <child> <placeholder/> @@ -1043,10 +1035,8 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="headers_visible">False</property> + <signal name="cursor-changed" handler="linphone_gtk_history_row_selected" swapped="no"/> <signal name="row-activated" handler="linphone_gtk_history_row_activated" swapped="no"/> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection2"/> - </child> </object> </child> </object> @@ -1550,6 +1540,8 @@ <property name="invisible_char">â—</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> @@ -1564,6 +1556,8 @@ <property name="invisible_char">â—</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> diff --git a/oRTP b/oRTP index f1fe7c8502c72cebfcbbee95d27586ba979824c6..cb6bd1b8684d94d473bed38dd02029bd3a48df6e 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit f1fe7c8502c72cebfcbbee95d27586ba979824c6 +Subproject commit cb6bd1b8684d94d473bed38dd02029bd3a48df6e