Merge branch 'master' of smorlat@git.sv.gnu.org:/srv/git/linphone

git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@496 3f6dc0c8-ddfe-455d-9043-3cd528dc4637
This commit is contained in:
smorlat 2009-06-16 10:00:34 +00:00
parent ae6a1f8a82
commit bc778cb393
35 changed files with 1610 additions and 1309 deletions

50
linphone/INSTALL Normal file → Executable file
View file

@ -1,8 +1,8 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it.
Basic Installation
==================
These are generic installation instructions.
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@ -23,9 +26,9 @@ debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. (Caching is
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.)
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You only need
`configure.ac' if you want to change it or regenerate `configure' using
a newer version of `autoconf'.
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
`./configure' to configure the package for your system.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
@ -78,7 +78,7 @@ details on some of the pertinent environment variables.
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
@ -87,17 +87,15 @@ Compiling For Multiple Architectures
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
Installation Names
==================
@ -190,12 +188,12 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script). Here is a another example:
overridden in the site shell script).
/bin/bash ./configure CONFIG_SHELL=/bin/bash
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
configuration-related scripts to be executed by `/bin/bash'.
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================

View file

@ -25,6 +25,9 @@ ACLOCAL_FLAGS=-I$(top_srcdir)/m4
DISTCLEANFILES= intltool-extract intltool-merge intltool-update po/stamp-it po/.intltool-merge-cache
INSTALLDIR=$(shell cd $(top_builddir)/linphone-install && pwd)
ZIPFILE=$(shell cd $(top_builddir) && pwd)/$(PACKAGE)-win32-$(VERSION).zip
# `make rpm'
all-local: linphone.spec
@ -41,3 +44,16 @@ rpm:
gzip $(PACKAGE)-$(VERSION).tar
# <https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=2068410>
TAR_OPTIONS=--wildcards rpmbuild -ta --clean --rmsource --rmspec $(PACKAGE)-$(VERSION).tar.gz
#a zip containing win32 binaries, suitable to generate an installer
zip:
rm -f $(ZIPFILE)
rm -rf $(INSTALLDIR)
mkdir -p $(INSTALLDIR)
make install DESTDIR=$(INSTALLDIR)
cd $(INSTALLDIR)/$(prefix) && zip -r $(ZIPFILE) *

65
linphone/README.mingw Normal file
View file

@ -0,0 +1,65 @@
Software to install
* mingw32
* msys
* automake*/autoconf*/libtool , uncompress in /
* gcc-part-core-4.3 gcc-part-c++-4.3, uncompress in /mingw
* download unzip for mingw
* gtk+bundle, uncompress in /usr/local
* libglade and libglade-dev >=2.6.3 from gnome ftp, uncompress in /usr/local
* download and install ActiveState perl
* linphone-deps from linphone website, uncompress in /usr/local
* install zip and unzip from http://www.info-zip.org/Zip.html#Downloads
(quicklink: ftp://ftp.dante.de/tex-archive/tools/zip/info-zip/WIN32/zip232xN.zip), and extract zip.exe to c:\msys\1.0\usr\local\bin
Building
WARNING: During the build, windows might slow down suddenly. Using ctl+alt+del to start the windows system monitor, you might see a process 'LVpSRV.exe' or something like this that eats 90% of cpu. Kill it. Don't know what it is, but once killed, windows runs normally.
#use ActiveState perl instead of mingw perl
export PERL="/c/Perl/bin/perl"
export INTLTOOL_PERL="/c/Perl/bin/perl"
#run autogen.sh after a git/svn checkout or update
./autogen.sh
./configure --enable-shared --disable-static --with-osip=/usr/local
make
make install DESTDIR=/c/linphone-install
#build plugins
cd mediastreamer2/plugins/msx264
./autogen.sh
PKG_CONFIG_PATH=/c/linphone-install/lib/pkgconfig ./configure --enable-shared --disable-static
make install DESTDIR=/c/msx264-install
cd coreapi/plugins/buddyloolup
./autogen.sh
PKG_CONFIG_PATH=/c/linphone-install/lib/pkgconfig ./configure --enable-shared --disable-static
make install DESTDIR=/c/buddylookup-install
******************************************************
* Notes about linphone-deps generation *
******************************************************
List of software included in linphone-deps:
libosip2 (compiled)
libeXosip2 (compiled)
libavcodec, libavutil, libavformat, libavdevice, libswscale (compiled, all these from ffmpeg)
libtheora (from the web)
libx264 (compiled from the version distributed from linphone's web site)
libogg (from the web)
libspeex, libspeexdsp (compiled, statically to workaround a dll-related crash)
libgnutls (from the web)
libgsm (from the web)
libxml2 (compiled)
libsoup (compiled)
- build ffmpeg
./configure --enable-shared --disable-static --enable-memalign-hack --extra-cflags="-fno-common" --enable-gpl && make
make install DESTDIR=/c/output/
Copy to linphone-deps/
Copy also all *.dll.a files from the build tree to lib/ directort of linphone-deps. These are the implibs necessary to link a program against the dlls.
- build libxml2: the binaries found on the internet are generated with MSVC++, and for obscure reason they are not suitable for building libsoup (that requires libxml2).

View file

@ -13,6 +13,7 @@ fi
echo "Generating build scripts in linphone..."
set -x
libtoolize --copy --force
intltoolize -c --force --automake
autoheader
$ACLOCAL -I m4

View file

@ -1,6 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT([linphone],[3.1.2],[linphone-developers@nongnu.org])
AC_CANONICAL_SYSTEM
dnl Source packaging numbers
@ -29,20 +30,54 @@ AC_PROG_CC
AC_C_INLINE
AM_PROG_CC_STDC
AC_HEADER_STDC
AM_PROG_CC_C_O
case $target_os in
*mingw*)
CFLAGS="$CFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
LIBS="$LIBS -lws2_32"
GUI_FLAGS="-mwindows"
CONSOLE_FLAGS="-mconsole"
mingw_found=yes
;;
esac
AC_SUBST(CONSOLE_FLAGS)
AC_SUBST(GUI_FLAGS)
dnl localization tools
ifdef([IT_PROG_INTLTOOL],[IT_PROG_INTLTOOL],[AC_PROG_INTLTOOL])
dnl Initialize libtool
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AM_PROG_LIBTOOL
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
if test "$mingw_found" = "yes" ; then
AC_MSG_NOTICE([Hacking libtool to work with mingw...])
sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
cp -f ./libtool.tmp ./libtool
rm -f ./libtool.tmp
fi
dnl Add the languages which your application supports here.
PKG_PROG_PKG_CONFIG
ALL_LINGUAS="fr it de ja es pl cs nl sv pt_BR hu ru"
AC_SUBST(ALL_LINGUAS)
GETTEXT_PACKAGE=linphone
if test "$mingw_found" != "yes" ; then
dnl gettext macro does not work properly under mingw.
AM_GNU_GETTEXT([external])
else
AC_DEFINE(ENABLE_NLS,1,[Tells whether localisation is possible])
AC_DEFINE(HAVE_GETTEXT,1,[Tells wheter localisation is possible])
LIBS="$LIBS -lintl"
fi
GETTEXT_PACKAGE=linphone
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",[The name of the gettext package name])
AC_CHECK_LIB(intl,libintl_gettext)
@ -239,6 +274,7 @@ dnl special things for arm-linux cross compilation toolchain
AM_CONDITIONAL(ARMBUILD, test x$use_arm_toolchain = xyes)
dnl compilation of gtk-glade user interface
AM_CONDITIONAL(BUILD_GLADE_UI, [test x$gtk_ui = xtrue ] )
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes )
##################################################
# Stricter build options (after external packages)

View file

@ -1,5 +1,7 @@
## Process this file with automake to produce Makefile.in
COMMON_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE -DENABLE_TRACE -D_ORTP_SOURCE $(VIDEO_CFLAGS) $(READLINE_CFLAGS) $(OSIP_CFLAGS)
if BUILD_CONSOLE
INCLUDES = \
@ -13,16 +15,29 @@ INCLUDES = \
bin_PROGRAMS = linphonec sipomatic linphonecsh
linphonec_SOURCES = linphonec.c linphonec.h commands.c
if BUILD_WIN32
bin_PROGRAMS += linphoned
endif
linphonec_SOURCES = linphonec.c linphonec.h commands.c
linphonec_CFLAGS=$(COMMON_CFLAGS) $(CONSOLE_FLAGS)
linphonec_LDADD = $(top_builddir)/coreapi/liblinphone.la $(READLINE_LIBS) \
$(top_builddir)/mediastreamer2/src/libmediastreamer.la \
$(ORTP_LIBS) \
$(SPEEX_LIBS) \
$(OSIP_LIBS)
if BUILD_WIN32
#special build of linphonec to detach from the windows console
linphoned_SOURCES = $(linphonec_SOURCES)
linphoned_CFLAGS=$(COMMON_CFLAGS) $(GUI_FLAGS)
linphoned_LDADD=$(linphonec_LDADD)
endif
sipomatic_SOURCES=\
sipomatic.c sipomatic.h
sipomatic_CFLAGS= $(COMMON_CFLAGS) $(CONSOLE_FLAGS)
sipomatic_LDADD= $(INTLLIBS) \
$(top_builddir)/coreapi/liblinphone.la \
@ -32,11 +47,12 @@ sipomatic_LDADD= $(INTLLIBS) \
$(OSIP_LIBS)
linphonecsh_SOURCES = shell.c
linphonecsh_CFLAGS = $(CONSOLE_FLAGS)
linphonecsh_LDADD = $(ORTP_LIBS)
endif
AM_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE -DENABLE_TRACE -D_ORTP_SOURCE $(VIDEO_CFLAGS) $(READLINE_CFLAGS) $(OSIP_CFLAGS)

View file

@ -76,7 +76,9 @@ static void linphonec_friend_display(LinphoneFriend *fr);
static int linphonec_friend_list(LinphoneCore *lc, char *arg);
static void linphonec_display_command_help(LPC_COMMAND *cmd);
static int linphonec_friend_call(LinphoneCore *lc, unsigned int num);
#ifndef WIN32
static int linphonec_friend_add(LinphoneCore *lc, const char *name, const char *addr);
#endif
static int linphonec_friend_delete(LinphoneCore *lc, int num);
@ -1264,6 +1266,7 @@ linphonec_friend_call(LinphoneCore *lc, unsigned int num)
return 1;
}
#ifndef WIN32
static int
linphonec_friend_add(LinphoneCore *lc, const char *name, const char *addr)
{
@ -1276,6 +1279,7 @@ linphonec_friend_add(LinphoneCore *lc, const char *name, const char *addr)
linphone_core_add_friend(lc, newFriend);
return 0;
}
#endif
static int
linphonec_friend_delete(LinphoneCore *lc, int num)

View file

@ -460,7 +460,11 @@ int main(int argc, char *argv[])
while (run_cond){
sipomatic_iterate(&sipomatic);
#ifndef WIN32
usleep(20000);
#else
Sleep(20);
#endif
}
return(0);

View file

@ -28,12 +28,16 @@ liblinphone_la_SOURCES=\
sipsetup.c sipsetup.h
liblinphone_la_LDFLAGS= -version-info $(LIBLINPHONE_SO_VERSION)
liblinphone_la_LDFLAGS= -version-info $(LIBLINPHONE_SO_VERSION) -no-undefined
liblinphone_la_LIBADD= \
$(EXOSIP_LIBS) \
$(top_builddir)/mediastreamer2/src/libmediastreamer.la
if BUILD_WIN32
liblinphone_la_LIBADD+=$(top_builddir)/oRTP/src/libortp.la
endif
AM_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE \
$(OSIP_CFLAGS) \

View file

@ -926,7 +926,7 @@ static bool_t exosip_running=FALSE;
static char _ua_name[64]="Linphone";
static char _ua_version[64]=LINPHONE_VERSION;
static void set_user_agent(){
static void apply_user_agent(void){
char ua_string[256];
snprintf(ua_string,sizeof(ua_string),"%s/%s (eXosip2/%s)",_ua_name,_ua_version,
#ifdef HAVE_EXOSIP_GET_VERSION
@ -973,7 +973,7 @@ void linphone_core_set_sip_port(LinphoneCore *lc,int port)
eXosip_set_rsvp_mode (lc->rsvp_enable);
eXosip_set_rpc_mode (lc->rpc_enable);
#endif
set_user_agent("Linphone",LINPHONE_VERSION);
apply_user_agent();
exosip_running=TRUE;
}

View file

@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <unistd.h>
#include <fcntl.h>
#undef snprintf
#include <ortp/stun.h>
#ifndef WIN32

View file

@ -43,6 +43,10 @@ linphone_3_LDADD=$(top_builddir)/oRTP/src/libortp.la \
$(LIBGTK_LIBS) $(INTLLIBS) \
$(LIBGLADE_LIBS)
if BUILD_WIN32
linphone_3_LDADD+=-lwininet
endif
linphone_3_LDFLAGS=-export-dynamic
gladedir=$(datadir)/linphone

View file

@ -95,7 +95,6 @@ static GOptionEntry linphone_options[2]={
static char _config_file[1024];
const char *linphone_gtk_get_config_file(){
const char *home;
/*try accessing a local file first if exists*/
if (access(CONFIG_FILE,F_OK)==0){
snprintf(_config_file,sizeof(_config_file),"%s",CONFIG_FILE);
@ -108,8 +107,8 @@ const char *linphone_gtk_get_config_file(){
snprintf(_config_file,sizeof(_config_file),"%s\\%s",appdata,"Linphone\\linphonerc");
}
#else
home=getenv("HOME");
if (home==NULL) home="";
const char *home=getenv("HOME");
if (home==NULL) home=".";
snprintf(_config_file,sizeof(_config_file),"%s/%s",home,CONFIG_FILE);
#endif
}
@ -340,7 +339,11 @@ static gboolean linphone_gtk_iterate(LinphoneCore *lc){
GdkWindow *w;
previd=id;
if (id!=0){
#ifndef WIN32
w=gdk_window_foreign_new(id);
#else
w=gdk_window_foreign_new((HANDLE)id);
#endif
if (w) {
set_video_window_decorations(w);
g_object_unref(G_OBJECT(w));

View file

@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.5 on Sat Oct 25 21:56:03 2008 -->
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkWindow" id="parameters">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="title" translatable="yes">Settings</property>
<property name="icon">linphone2.png</property>
<child>
<widget class="GtkVBox" id="vbox1">
@ -15,7 +16,7 @@
<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>
<widget class="GtkVBox" id="vbox1">
<widget class="GtkVBox" id="vbox2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
@ -29,20 +30,23 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkVBox" id="vbox2">
<widget class="GtkVBox" id="vbox3">
<property name="visible">True</property>
<child>
<widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<child>
<widget class="GtkCheckButton" id="mtu_set">
<property name="label" translatable="yes">Set Maximum Transmission Unit:</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Set Maximum Transmission Unit:</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_mtu_set"/>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkSpinButton" id="mtu">
@ -56,13 +60,16 @@
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="dtmf_sipinfo">
<property name="label" translatable="yes">Send DTMFs as SIP info</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Send DTMFs as SIP info</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_use_sip_info_dtmf_toggled"/>
</widget>
@ -72,11 +79,11 @@
</child>
<child>
<widget class="GtkCheckButton" id="ipv6_enabled">
<property name="label" translatable="yes">Use IPv6 instead of IPv4</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">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="label" translatable="yes">Use IPv6 instead of IPv4</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_ipv6_toggled"/>
</widget>
@ -100,6 +107,9 @@
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame2">
@ -165,7 +175,7 @@
<property name="visible">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="label" translatable="yes">Video RTP/UDP:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">2</property>
@ -177,7 +187,7 @@
<property name="visible">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="label" translatable="yes">Audio RTP/UDP:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">1</property>
@ -189,7 +199,7 @@
<property name="visible">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="label" translatable="yes">SIP (UDP):</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
</child>
</widget>
@ -222,29 +232,37 @@
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="no_nat">
<property name="label" translatable="yes">Direct connection to the Internet</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Direct connection to the Internet</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_no_firewall_toggled"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox3">
<widget class="GtkVBox" id="vbox4">
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="use_nat_address">
<property name="label" translatable="yes">Behind NAT / Firewall (specify gateway IP below)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Behind NAT / Firewall (specify gateway IP below)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">no_nat</property>
<signal name="toggled" handler="linphone_gtk_use_nat_address_toggled"/>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox21">
@ -255,8 +273,11 @@
<property name="visible">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="label" translatable="yes">Public IP address:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="nat_address">
@ -276,23 +297,28 @@
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox4">
<widget class="GtkVBox" id="vbox5">
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="use_stun">
<property name="label" translatable="yes">Behind NAT / Firewall (use STUN to resolve)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Behind NAT / Firewall (use STUN to resolve)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">no_nat</property>
<signal name="toggled" handler="linphone_gtk_use_stun_toggled"/>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkHBox" id="hbox24">
@ -303,8 +329,11 @@
<property name="visible">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="label" translatable="yes">Stun server:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="stun_server">
@ -324,6 +353,8 @@
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
@ -357,6 +388,9 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-network</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="network">
@ -370,8 +404,8 @@
</child>
</widget>
<packing>
<property name="type">tab</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
@ -394,9 +428,6 @@
<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">6</property>
<property name="n_columns">2</property>
<child>
<placeholder/>
</child>
<child>
<widget class="GtkHBox" id="hbox19">
<property name="visible">True</property>
@ -407,16 +438,18 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<signal name="file_set" handler="linphone_gtk_ring_file_set"/>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="play_ring">
<property name="label" translatable="yes">gtk-media-play</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">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="label" translatable="yes">gtk-media-play</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_play_ring_file"/>
</widget>
<packing>
@ -437,7 +470,7 @@
<property name="visible">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="label" translatable="yes">Ring sound:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">4</property>
@ -494,7 +527,7 @@
<widget class="GtkLabel" id="label36">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">ALSA special device (optional):</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">3</property>
@ -507,7 +540,7 @@
<property name="visible">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="label" translatable="yes">Capture device:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">2</property>
@ -520,7 +553,7 @@
<property name="visible">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="label" translatable="yes">Ring device:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">1</property>
@ -533,7 +566,7 @@
<property name="visible">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="label" translatable="yes">Playback device:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="x_options">GTK_FILL</property>
@ -557,10 +590,10 @@
</child>
<child>
<widget class="GtkCheckButton" id="echo_cancelation">
<property name="label" translatable="yes">Enable echo cancellation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Enable echo cancellation</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="linphone_gtk_echo_cancelation_toggled"/>
</widget>
@ -571,6 +604,9 @@
<property name="bottom_attach">6</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</widget>
</child>
</widget>
@ -587,6 +623,9 @@
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame4">
@ -605,7 +644,7 @@
<widget class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="label" translatable="yes">Video input device:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="y_options">GTK_EXPAND</property>
@ -682,6 +721,9 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-media-play</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label2">
@ -695,13 +737,13 @@
</child>
</widget>
<packing>
<property name="type">tab</property>
<property name="position">1</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox9">
<widget class="GtkVBox" id="sip_tab">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
@ -806,6 +848,9 @@
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame12">
@ -826,17 +871,19 @@
<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">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<child>
<widget 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>
<property name="headers_clickable">True</property>
</widget>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkVButtonBox" id="vbuttonbox2">
@ -848,7 +895,6 @@
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_add_proxy"/>
<child>
<widget class="GtkHBox" id="hbox14">
@ -860,6 +906,9 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-add</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="add_proxy_label">
@ -874,6 +923,11 @@
</widget>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="edit_proxy">
@ -881,7 +935,6 @@
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_edit_proxy"/>
<child>
<widget class="GtkHBox" id="hbox16">
@ -893,6 +946,9 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-edit</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_proxy2">
@ -908,6 +964,8 @@
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
@ -917,7 +975,6 @@
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_remove_proxy"/>
<child>
<widget class="GtkHBox" id="hbox7">
@ -929,6 +986,9 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-delete</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label_proxy1">
@ -944,6 +1004,8 @@
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
@ -951,7 +1013,6 @@
<widget class="GtkButton" id="create_phonics">
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_create_fonics_account"/>
<child>
<widget class="GtkHBox" id="hbox1">
@ -961,6 +1022,9 @@
<property name="visible">True</property>
<property name="stock">gtk-network</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label11">
@ -976,6 +1040,8 @@ virtual network !</property>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
@ -1026,7 +1092,6 @@ virtual network !</property>
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_clear_passwords"/>
<child>
<widget class="GtkHBox" id="hbox18">
@ -1038,6 +1103,9 @@ virtual network !</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-delete</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label30">
@ -1052,6 +1120,11 @@ virtual network !</property>
</widget>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
</widget>
</child>
@ -1088,6 +1161,9 @@ virtual network !</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="pixbuf">stock_people.png</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label3">
@ -1101,13 +1177,13 @@ virtual network !</property>
</child>
</widget>
<packing>
<property name="type">tab</property>
<property name="position">2</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox7">
<widget class="GtkVBox" id="codec_tab">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
@ -1135,6 +1211,7 @@ Video codecs</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
@ -1146,19 +1223,21 @@ Video codecs</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">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="shadow_type">GTK_SHADOW_OUT</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<property name="shadow_type">out</property>
<child>
<widget class="GtkTreeView" id="codec_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>
<property name="has_tooltip">True</property>
<property name="headers_clickable">True</property>
</widget>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkVButtonBox" id="vbuttonbox1">
@ -1166,28 +1245,33 @@ Video codecs</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkButton" id="button4">
<property name="label" translatable="yes">gtk-go-up</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">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="label" translatable="yes">gtk-go-up</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_codec_up"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="up_codec">
<property name="label" translatable="yes">gtk-go-down</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">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="label" translatable="yes">gtk-go-down</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_codec_down"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
@ -1197,7 +1281,6 @@ Video codecs</property>
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_codec_enable"/>
<child>
<widget class="GtkHBox" id="hbox8">
@ -1209,6 +1292,9 @@ Video codecs</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-yes</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label19">
@ -1224,6 +1310,8 @@ Video codecs</property>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
@ -1233,7 +1321,6 @@ Video codecs</property>
<property name="can_focus">True</property>
<property name="receives_default">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="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_codec_disable"/>
<child>
<widget class="GtkHBox" id="hbox9">
@ -1245,6 +1332,9 @@ Video codecs</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-no</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label20">
@ -1260,6 +1350,8 @@ Video codecs</property>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">3</property>
</packing>
</child>
@ -1290,6 +1382,9 @@ Video codecs</property>
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame10">
@ -1342,7 +1437,7 @@ Video codecs</property>
<property name="visible">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="label" translatable="yes">Upload speed limit in Kbit/sec:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
<packing>
<property name="top_attach">1</property>
@ -1354,7 +1449,7 @@ Video codecs</property>
<property name="visible">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="label" translatable="yes">Download speed limit in Kbit/sec:</property>
<property name="justify">GTK_JUSTIFY_RIGHT</property>
<property name="justify">right</property>
</widget>
</child>
</widget>
@ -1392,6 +1487,9 @@ Video codecs</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-execute</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="label33">
@ -1405,29 +1503,36 @@ Video codecs</property>
</child>
</widget>
<packing>
<property name="type">tab</property>
<property name="position">3</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkHButtonBox" id="hbuttonbox2">
<property name="visible">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="layout_style">GTK_BUTTONBOX_END</property>
<property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button5">
<property name="label" translatable="yes">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">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="label" translatable="yes">gtk-close</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="linphone_gtk_parameters_closed"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
</widget>
<packing>

View file

@ -24,10 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <wininet.h>
static int linphone_gtk_get_new_version(const char *version_url, char *version, size_t size){
DWORD dwSize = 0;
DWORD dwDownloaded = 0;
LPSTR pszOutBuffer;
BOOL bResults = FALSE;
HINTERNET hSession = NULL, hConnect = NULL;
int ret=-1;

View file

@ -42,8 +42,6 @@ dnl check for osip2 libs
LIBS_save=$LIBS
AC_CHECK_LIB(osip2${osip_legacy_version},osip_init, , AC_MSG_ERROR([Could not find osip2 library !]),[-losipparser2${osip_legacy_version} -lpthread])
AC_CHECK_LIB(osipparser2${osip_legacy_version},osip_message_init, , AC_MSG_ERROR([Could not find osipparser2 library !]),[-lpthread])
dnl AC_CHECK_LIB adds osip2 & osipparser2 to LIBS
OSIP_LIBS=$LIBS
LDFLAGS=$LDFLAGS_save
LIBS=$LIBS_save
fi

50
linphone/mediastreamer2/INSTALL Normal file → Executable file
View file

@ -1,8 +1,8 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it.
Basic Installation
==================
These are generic installation instructions.
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@ -23,9 +26,9 @@ debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. (Caching is
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.)
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You only need
`configure.ac' if you want to change it or regenerate `configure' using
a newer version of `autoconf'.
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
`./configure' to configure the package for your system.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
@ -78,7 +78,7 @@ details on some of the pertinent environment variables.
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
@ -87,17 +87,15 @@ Compiling For Multiple Architectures
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not support the `VPATH'
variable, you have to compile the package for one architecture at a
time in the source code directory. After you have installed the
package for one architecture, use `make distclean' before reconfiguring
for another architecture.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
Installation Names
==================
@ -190,12 +188,12 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script). Here is a another example:
overridden in the site shell script).
/bin/bash ./configure CONFIG_SHELL=/bin/bash
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
configuration-related scripts to be executed by `/bin/bash'.
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================

View file

@ -102,7 +102,7 @@ AC_DEFUN([MS_CHECK_VIDEO],[
if test "$libsdldir" != "none" ; then
MS_CHECK_DEP([SDL],[SDL],[${libsdldir}/include],[${libsdldir}/lib],[SDL/SDL.h],[SDL],[SDL_Init])
if test "$SDL_found" = "no" ; then
if test "$SDL_found" = "no" && test "$mingw_found" != "yes" ; then
AC_MSG_ERROR([Could not find libsdl headers and library. This is mandatory for video support])
fi
fi
@ -143,6 +143,10 @@ AC_DEFUN([MS_CHECK_VIDEO],[
if test "${ac_cv_header_X11_Xlib_h}" = "yes" ; then
VIDEO_LIBS="$VIDEO_LIBS -lX11"
fi
if test "$mingw_found" = "yes" ; then
VIDEO_LIBS="$VIDEO_LIBS -lvfw32"
fi
fi
AC_SUBST(VIDEO_CFLAGS)

View file

@ -80,6 +80,7 @@ AC_ARG_ENABLE(debug,
dnl Checks for programs.
AC_PROG_CC
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
@ -122,12 +123,19 @@ fi
macosx_found=no
dnl add thread flags
case $OS in
darwin*)
MSPLUGINS_CFLAGS=""
MSPLUGINS_LIBS="-dynamiclib"
macosx_found=yes
;;
case $target_os in
*darwin*)
MSPLUGINS_CFLAGS=""
MSPLUGINS_LIBS="-dynamiclib"
macosx_found=yes
;;
*mingw*)
CFLAGS="$CFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -DORTP_STATIC"
CXXFLAGS="$CXXFLAGS -DINET6 -DORTP_INET6 -D_WIN32_WINNT=0x0501 -DORTP_STATIC"
dnl ORTP_STATIC to tell ortp not to export its variable with dllexport, as if we were building statically, or dynamically on linux
LIBS="$LIBS -lws2_32 -lwinmm "
mingw_found=yes
;;
*)
MSPLUGINS_CFLAGS="-pthread"
MSPLUGINS_LIBS="-shared -pthread"
@ -138,6 +146,14 @@ esac
AM_CONDITIONAL(BUILD_MACOSX, test x$macosx_found = xyes)
if test "$mingw_found" = "yes" ; then
AC_MSG_NOTICE([Hacking libtool to work with mingw...])
sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
cp -f ./libtool.tmp ./libtool
rm -f ./libtool.tmp
fi
dnl initialize pkg-config so that we can use it within if else fi statements.
PKG_PROG_PKG_CONFIG()
@ -152,6 +168,10 @@ dnl *********************************
found_sound=no
if test x$mingw_found = xyes ; then
found_sound=yes
fi
AC_ARG_ENABLE(oss,
[ --enable-oss Disable oss support],
[case "${enableval}" in
@ -167,10 +187,12 @@ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
test "${ac_cv_header_sys_audio_h}" = "yes" || \
test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
found_sound=yes
else
oss=false
fi
fi
AM_CONDITIONAL(BUILD_OSS, test x$found_sound = xyes)
AM_CONDITIONAL(BUILD_OSS, test x$oss = xtrue)
dnl conditionnal build of ALSA support
AC_ARG_ENABLE(alsa,
@ -403,6 +425,7 @@ AM_CONDITIONAL(BUILD_GSM, test x$build_gsm = xyes )
MS_CHECK_VIDEO
AM_CONDITIONAL(BUILD_VIDEO, test "$video" = "true")
AM_CONDITIONAL(BUILD_THEORA, test "$have_theora" = "yes")
AM_CONDITIONAL(BUILD_WIN32, test "$mingw_found" = "yes")
dnl *********************************************
dnl setup oRTP dependency
@ -462,6 +485,16 @@ AC_SUBST(PACKAGE_DATA_DIR)
dnl check for video4linux headers
AC_CHECK_HEADERS(linux/videodev.h linux/videodev2.h)
if test "${ac_cv_header_linux_videodev_h}" = "yes" || \
test "${ac_cv_header_linux_videodev2_h}" = "yes" ; then
found_v4l=yes
else
found_v4l=no
fi
AM_CONDITIONAL(BUILD_V4L, test x$found_v4l = xyes )
dnl ##################################################
dnl # Check for doxygen

View file

@ -82,7 +82,8 @@ typedef enum MSFilterId{
MS_MIRE_ID,
MS_VFW_ID,
MS_ICE_ID,
MS_VOID_SINK_ID
MS_VOID_SINK_ID,
MS_DSCAP_ID
} MSFilterId;

5
linphone/mediastreamer2/plugins/msx264/INSTALL Normal file → Executable file
View file

@ -2,7 +2,7 @@ Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007 Free Software Foundation, Inc.
2006 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
@ -67,9 +67,6 @@ The simplest way to compile this package is:
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================

View file

@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT([msx264],[1.1.7])
AC_INIT([msx264],[1.1.8])
AM_INIT_AUTOMAKE([tar-ustar])
@ -15,9 +15,24 @@ AC_ARG_ENABLE(strict,
dnl Checks for programs.
AC_PROG_CC
AC_PROG_LIBTOOL
AC_DISABLE_STATIC
AC_LIBTOOL_WIN32_DLL
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
case $target_os in
*mingw*)
mingw_found=yes
;;
esac
if test "$mingw_found" = "yes" ; then
AC_MSG_NOTICE([Hacking libtool to work with mingw...])
sed -e 's/\*\" \$a_deplib \"\*/\*/' < ./libtool > libtool.tmp
cp -f ./libtool.tmp ./libtool
rm -f ./libtool.tmp
fi
CFLAGS="$CFLAGS -Wall"

View file

@ -19,10 +19,8 @@ libmediastreamer_la_SOURCES= mscommon.c \
alaw.c \
ulaw.c \
mssndcard.c \
msfileplayer.c \
msrtp.c \
dtmfgen.c \
msfilerec.c \
ice.c \
tee.c \
msconf.c \
@ -33,9 +31,28 @@ libmediastreamer_la_SOURCES= mscommon.c \
mtu.c \
void.c
#dummy c++ file to force libtool to use c++ linking (because of msdscap-mingw.cc)
nodist_EXTRA_libmediastreamer_la_SOURCES = dummy.cxx
libmediastreamer_la_SOURCES+=audiostream.c
if BUILD_SPEEX
libmediastreamer_la_SOURCES+=msspeex.c speexec.c
endif
if BUILD_GSM
libmediastreamer_la_SOURCES+=gsm.c
endif
if BUILD_WIN32
libmediastreamer_la_SOURCES+= winsnd3.c \
msfileplayer_win.c msfilerec_win.c
else
libmediastreamer_la_SOURCES+= msfileplayer.c \
msfilerec.c
endif
if BUILD_RESAMPLE
libmediastreamer_la_SOURCES+=msresample.c
endif
@ -69,10 +86,21 @@ if BUILD_VIDEO
if BUILD_MACOSX
libmediastreamer_la_SOURCES+=msv4m.c
else
endif
if BUILD_V4L
libmediastreamer_la_SOURCES+=msv4l.c msv4l2.c
endif
if BUILD_WIN32
libmediastreamer_la_SOURCES+=msdscap-mingw.cc
endif
if BUILD_THEORA
libmediastreamer_la_SOURCES+=theora.c
endif
libmediastreamer_la_SOURCES+= videoenc.c \
videodec.c \
pixconv.c \
@ -89,17 +117,8 @@ libmediastreamer_la_SOURCES+=videostream.c
endif
if BUILD_THEORA
libmediastreamer_la_SOURCES+=theora.c
endif
if BUILD_SPEEX
libmediastreamer_la_SOURCES+=msspeex.c speexec.c
endif
if BUILD_GSM
libmediastreamer_la_SOURCES+=gsm.c
endif
alldescs.h: Makefile.am $(libmediastreamer_la_SOURCES)
builddir=`pwd` && cd $(srcdir) && \
@ -113,13 +132,26 @@ libmediastreamer_la_LIBADD= $(ORTP_LIBS) \
$(ALSA_LIBS) \
$(ARTS_LIBS) \
$(SPEEX_LIBS) \
$(GSM_LIBS) \
$(THEORA_LIBS)
$(GSM_LIBS)
if !BUILD_WIN32
libmediastreamer_la_LDFLAGS=-rdynamic
else
libmediastreamer_la_LDFLAGS=-no-undefined
endif
if BUILD_VIDEO
libmediastreamer_la_LIBADD+=$(VIDEO_LIBS)
libmediastreamer_la_LIBADD+= $(VIDEO_LIBS) \
$(THEORA_LIBS)
if BUILD_WIN32
libmediastreamer_la_LIBADD+= -lole32 \
-loleaut32\
-lwinmm \
-luuid
endif
endif
@ -129,6 +161,10 @@ AM_CFLAGS= -I$(top_srcdir) \
$(GSM_CFLAGS) \
$(STRICT_OPTIONS)
AM_CXXFLAGS= -I$(top_srcdir) \
$(ORTP_CFLAGS) \
$(STRICT_OPTIONS)
if BUILD_VIDEO
AM_CFLAGS+=$(VIDEO_CFLAGS)
endif

View file

@ -481,6 +481,10 @@ extern MSWebCamDesc ms_vfw_cam_desc;
extern MSWebCamDesc ms_directx_cam_desc;
#endif
#ifdef __MINGW32__
extern MSWebCamDesc ms_dshow_cam_desc;
#endif
extern MSWebCamDesc static_image_desc;
extern MSWebCamDesc mire_desc;
@ -496,6 +500,9 @@ static MSWebCamDesc * ms_web_cam_descs[]={
#endif
#if defined(WIN32) && defined(HAVE_VFW)
&ms_vfw_cam_desc,
#endif
#ifdef __MINGW32__
&ms_dshow_cam_desc,
#endif
&mire_desc,
&static_image_desc,

File diff suppressed because it is too large Load diff

View file

@ -347,13 +347,13 @@ int main(int argc, char *argv[]){
for (pos=0;cfg[pos].num_session!=0;pos++)
{
count = count + init_bench(&cfg[pos]);
sleep(10);
ms_sleep(10);
}
ms_message("Number of session started: %i.", count);
while(run)
sleep(1);
ms_sleep(1);
for (pos=0;cfg[pos].num_session!=0;pos++)
{

View file

@ -69,16 +69,16 @@ int main(int argc, char *argv[]){
f1=ms_snd_card_create_reader(card_capture);
f2=ms_snd_card_create_writer(card_playback);
ms_filter_call_method (f1, MS_FILTER_SET_SAMPLE_RATE,
&rate);
ms_filter_call_method (f2, MS_FILTER_SET_SAMPLE_RATE,
&rate);
ms_filter_call_method (f1, MS_FILTER_SET_SAMPLE_RATE,
&rate);
ms_filter_call_method (f2, MS_FILTER_SET_SAMPLE_RATE,
&rate);
ticker=ms_ticker_new();
ms_filter_link(f1,0,f2,0);
ms_ticker_attach(ticker,f1);
while(run)
sleep(1);
ms_sleep(1);
ms_ticker_detach(ticker,f1);
ms_ticker_destroy(ticker);
ms_filter_unlink(f1,0,f2,0);

View file

@ -46,7 +46,7 @@ int main(int argc, char *argv[]){
#endif
r=ring_start(file,2000,sc);
sleep(10);
ms_sleep(10);
ring_stop(r);
return 0;
}

View file

@ -98,10 +98,16 @@ case "$target_os" in
AC_DEFINE(NOCONNECT,1,[Defined if we should not use connect() on udp sockets])
PTHREAD_LDFLAGS="-pthread"
;;
*mingw*)
CFLAGS="$CFLAGS -D_WIN32_WINNT=0x0501 -DORTP_STATIC"
LIBS="$LIBS -lws2_32 -liphlpapi -lwinmm"
build_tests=no
;;
esac
dnl Checks for programs.
AC_PROG_CC
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL
AC_ENABLE_SHARED(yes)
AC_ENABLE_STATIC(no)
@ -276,7 +282,7 @@ AC_PATH_PROG(EPM,epm,false)
AC_PATH_PROG(MKEPMLIST,mkepmlist,false)
AC_PATH_PROG(EPMINSTALL,epminstall,false)
AM_CONDITIONAL(WITH_EPM,test $EPM != false && test $MKEPMLIST != false && test $EPMINSTALL != false)
AM_CONDITIONAL(BUILD_TESTS,test x$build_tests != xno)
# Preferred packaging system, as per EPM terminology
case $target in

View file

@ -35,7 +35,7 @@ libortp_la_SOURCES= str_utils.c \
libortp_la_LIBADD= $(PTHREAD_LIBS) -lm $(SRTP_LIBS) $(SSL_LIBS)
libortp_la_LDFLAGS= -version-info $(LIBORTP_SO_VERSION)
libortp_la_LDFLAGS= -version-info $(LIBORTP_SO_VERSION) -no-undefined
SUBDIRS= . tests

View file

@ -730,10 +730,10 @@ void rtp_session_flush_sockets(RtpSession *session){
}
if (session->rtp.socket>=0){
while (recvfrom(session->rtp.socket,trash,sizeof(trash),0,(struct sockaddr *)&from,&fromlen)>0){};
while (recvfrom(session->rtp.socket,(char*)trash,sizeof(trash),0,(struct sockaddr *)&from,&fromlen)>0){};
}
if (session->rtcp.socket>=0){
while (recvfrom(session->rtcp.socket,trash,sizeof(trash),0,(struct sockaddr*)&from,&fromlen)>0){};
while (recvfrom(session->rtcp.socket,(char*)trash,sizeof(trash),0,(struct sockaddr*)&from,&fromlen)>0){};
}
}
@ -811,7 +811,7 @@ rtp_session_rtp_send (RtpSession * session, mblk_t * m)
#else
if (m->b_cont!=NULL)
msgpullup(m,-1);
error = sendto (sockfd, m->b_rptr, (int) (m->b_wptr - m->b_rptr),
error = sendto (sockfd, (char*)m->b_rptr, (int) (m->b_wptr - m->b_rptr),
0,destaddr,destlen);
#endif
}
@ -855,7 +855,7 @@ rtp_session_rtcp_send (RtpSession * session, mblk_t * m)
if (m->b_cont!=NULL){
msgpullup(m,-1);
}
error = sendto (sockfd, m->b_rptr,
error = sendto (sockfd, (char*)m->b_rptr,
(int) (m->b_wptr - m->b_rptr), 0,
destaddr, destlen);
#endif
@ -896,12 +896,12 @@ rtp_session_rtp_recv (RtpSession * session, uint32_t user_ts)
mp=session->rtp.cached_mp;
bufsz=(int) (mp->b_datap->db_lim - mp->b_datap->db_base);
if (sock_connected){
error=recv(sockfd,mp->b_wptr,bufsz,0);
error=recv(sockfd,(char*)mp->b_wptr,bufsz,0);
}else if (rtp_session_using_transport(session, rtp))
error = (session->rtp.tr->t_recvfrom)(session->rtp.tr, mp, 0,
(struct sockaddr *) &remaddr,
&addrlen);
else error = recvfrom(sockfd, mp->b_wptr,
else error = recvfrom(sockfd, (char*)mp->b_wptr,
bufsz, 0,
(struct sockaddr *) &remaddr,
&addrlen);
@ -977,7 +977,7 @@ rtp_session_rtcp_recv (RtpSession * session)
mp=session->rtcp.cached_mp;
if (sock_connected){
error=recv(session->rtcp.socket,mp->b_wptr,RTCP_MAX_RECV_BUFSIZE,0);
error=recv(session->rtcp.socket,(char*)mp->b_wptr,RTCP_MAX_RECV_BUFSIZE,0);
}else {
addrlen=sizeof (remaddr);
@ -986,7 +986,7 @@ rtp_session_rtcp_recv (RtpSession * session)
(struct sockaddr *) &remaddr,
&addrlen);
else
error=recvfrom (session->rtcp.socket, mp->b_wptr,
error=recvfrom (session->rtcp.socket,(char*) mp->b_wptr,
RTCP_MAX_RECV_BUFSIZE, 0,
(struct sockaddr *) &remaddr,
&addrlen);

View file

@ -17,7 +17,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#if defined(WIN32) || defined(_WIN32_WCE)
#if defined(_MSC_VER) && (defined(WIN32) || defined(_WIN32_WCE))
#include "ortp-config-win32.h"
#else
#include "ortp-config.h"

View file

@ -1,5 +1,7 @@
SUBDIRS=win_receiver win_sender
if BUILD_TESTS
noinst_PROGRAMS= rtpsend rtprecv mrtpsend mrtprecv test_timer rtpmemtest tevrtpsend tevrtprecv tevmrtprecv rtpsend_stupid
rtpsend_SOURCES= rtpsend.c
@ -22,6 +24,8 @@ tevmrtprecv_SOURCES= tevmrtprecv.c
rtpsend_stupid_SOURCES=rtpsend_stupid.c
endif
AM_CFLAGS= -D_ORTP_SOURCE $(PTHREAD_CFLAGS)
AM_LDFLAGS= $(PTHREAD_LDFLAGS)
LDADD=$(top_builddir)/src/libortp.la $(SRTP_LIBS) $(SSL_LIBS)

4
linphone/po/Makefile.in.in Normal file → Executable file
View file

@ -21,7 +21,7 @@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
PACKAGE = @PACKAGE@
VERSION = @VERSION@
SHELL = @SHELL@
SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@ -56,7 +56,7 @@ ALL_LINGUAS = @ALL_LINGUAS@
PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep '^$$lang$$' $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep '^$$lang$$'`"; then printf "$$lang "; fi; done; fi)
USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep ^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep ^$$lang$$`"; then printf "$$lang "; fi; done; fi)
USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)

File diff suppressed because it is too large Load diff