Merge branch 'master' into bellesip

Conflicts:
	.gitmodules
	Makefile
	submodules/externals/build/exosip/Android.mk
	submodules/externals/exosip
	submodules/linphone
This commit is contained in:
Yann Diorcet 2013-02-06 12:22:28 +01:00
commit 0408e3eae8
33 changed files with 1140 additions and 106 deletions

9
.gitmodules vendored
View file

@ -55,6 +55,9 @@
[submodule "submodules/belle-sip"] [submodule "submodules/belle-sip"]
path = submodules/belle-sip path = submodules/belle-sip
url = gitosis@git.linphone.org:belle-sip url = gitosis@git.linphone.org:belle-sip
[submodule "submodules/externals/libantlr3c"] [submodule "submodules/externals/antlr3"]
path = submodules/externals/libantlr3c path = submodules/externals/antlr3
url = git://git.linphone.org/libantlr3c.git url = git://git.linphone.org/antlr3.git
[submodule "submodules/externals/libxml2"]
path = submodules/externals/libxml2
url = git://git.gnome.org/libxml2

View file

@ -7,6 +7,8 @@ PATCH_FFMPEG=$(shell cd submodules/externals/ffmpeg && git status | grep neon)
LINPHONE_VERSION=$(shell cd submodules/linphone && git describe) LINPHONE_VERSION=$(shell cd submodules/linphone && git describe)
LINPHONE_ANDROID_DEBUG_VERSION=$(shell git describe) LINPHONE_ANDROID_DEBUG_VERSION=$(shell git describe)
ANDROID_MOST_RECENT_TARGET=$(shell android list target -c | grep android | tail -n1) ANDROID_MOST_RECENT_TARGET=$(shell android list target -c | grep android | tail -n1)
BUILD_REMOTE_PROVISIONING=1
BUILD_X264=0 BUILD_X264=0
BUILD_AMRNB=full # 0, light or full BUILD_AMRNB=full # 0, light or full
BUILD_AMRWB=0 BUILD_AMRWB=0
@ -91,20 +93,20 @@ prepare-mediastreamer2:
if ! [ -e yuv2rgb.fs.h ]; then echo "yuv2rgb.fs.h creation error (do you have 'xxd' application installed ?)"; exit 1; fi if ! [ -e yuv2rgb.fs.h ]; then echo "yuv2rgb.fs.h creation error (do you have 'xxd' application installed ?)"; exit 1; fi
LIBANLTR3C_SRC_DIR=$(TOPDIR)/submodules/externals/libantlr3c ANLTR3_SRC_DIR=$(TOPDIR)/submodules/externals/antlr3/runtime/C/include/
LIBANTLR3C_BUILD_DIR=$(LIBANTLR3C_SRC_DIR) ANTLR3_BUILD_DIR=$(ANTLR3_SRC_DIR)
prepare-libantlr3c: $(TOPDIR)/submodules/externals/build/libantlr3c/antlr3config.h prepare-antlr3: $(TOPDIR)/submodules/externals/build/antlr3/antlr3config.h
cp $(TOPDIR)/submodules/externals/build/libantlr3c/antlr3config.h $(LIBANLTR3C_SRC_DIR) cp $(TOPDIR)/submodules/externals/build/antlr3/antlr3config.h $(ANLTR3_SRC_DIR)
BELLESIP_SRC_DIR=$(TOPDIR)/submodules/belle-sip BELLESIP_SRC_DIR=$(TOPDIR)/submodules/belle-sip
BELLESIP_BUILD_DIR=$(BELLESIP_SRC_DIR) BELLESIP_BUILD_DIR=$(BELLESIP_SRC_DIR)
prepare-belle-sip: prepare-belle-sip:
$(ANTLR) -make -fo $(BELLESIP_BUILD_DIR)/src/ $(BELLESIP_SRC_DIR)/src/belle_sip_message.g $(BELLESIP_SRC_DIR)/src/belle_sdp.g $(ANTLR) -make -fo $(BELLESIP_BUILD_DIR)/src/ $(BELLESIP_SRC_DIR)/src/belle_sip_message.g $(BELLESIP_SRC_DIR)/src/belle_sdp.g
prepare-sources: prepare-ffmpeg prepare-ilbc prepare-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-libantlr3c prepare-belle-sip prepare-sources: prepare-ffmpeg prepare-ilbc prepare-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip
generate-libs: generate-libs:
$(NDK_PATH)/ndk-build LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_X264=$(BUILD_X264) BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_FOR_X86=$(BUILD_FOR_X86) USE_JAVAH=$(USE_JAVAH) -j$(NUMCPUS) $(NDK_PATH)/ndk-build LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_X264=$(BUILD_X264) BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_FOR_X86=$(BUILD_FOR_X86) USE_JAVAH=$(USE_JAVAH) -j$(NUMCPUS)
update-project: update-project:
$(SDK_PATH)/android update project --path . --target $(ANDROID_MOST_RECENT_TARGET) $(SDK_PATH)/android update project --path . --target $(ANDROID_MOST_RECENT_TARGET)

View file

@ -11,22 +11,7 @@ if [ -z ${JAVA} ]; then
fi fi
# Check antlr # Check antlr
antlr_java_prefixes="/usr/share/java /usr/local/share/java /usr/share/java /opt/local/share/java" ANTLR="${JAVA} -jar \"submodules/externals/antlr3/antlr-3.4-complete.jar\"";
antlr_jar="no"
for antlr_java_prefix in ${antlr_java_prefixes}
do
antlr_jar=${antlr_java_prefix}/antlr.jar
if [ ! -f ${antlr_jar} ]; then
antlr_jar="no"
else
break;
fi
done
if test ${antlr_jar} = "no" ; then
echo "Could not find antlr.jar. Please install antlr3";
exit -1;
fi
ANTLR="${JAVA} -jar \"${antlr_jar}\"";
# Check NDK # Check NDK
NDK=$(which ndk-build) NDK=$(which ndk-build)

View file

@ -6,6 +6,9 @@
<move file="submodules/linphone/mediastreamer2/java/src/org/linphone/mediastream/MediastreamerActivity.java" <move file="submodules/linphone/mediastreamer2/java/src/org/linphone/mediastream/MediastreamerActivity.java"
tofile="submodules/linphone/mediastreamer2/java/src/org/linphone/mediastream/MediastreamerActivity.wnin" tofile="submodules/linphone/mediastreamer2/java/src/org/linphone/mediastream/MediastreamerActivity.wnin"
failonerror="false" /> failonerror="false" />
<copy file="submodules/linphone/share/xml/lpconfig.xsd"
tofile="res/raw/lpconfig.xsd"
failonerror="false" />
</target> </target>
<target name="-post-build" description="Restore file that has been moved so that it was not compiled."> <target name="-post-build" description="Restore file that has been moved so that it was not compiled.">
@ -35,6 +38,18 @@
<class name="org.linphone.core.PayloadTypeImpl" /> <class name="org.linphone.core.PayloadTypeImpl" />
<class name="org.linphone.core.LpConfigImpl" /> <class name="org.linphone.core.LpConfigImpl" />
</javah> </javah>
<javah outputfile="gen/xml2lpc_jni.h">
<classpath>
<pathelement location="${out.classes.absolute.dir}" />
</classpath>
<class name="org.linphone.tools.Xml2Lpc" />
</javah>
<javah outputfile="gen/lpc2xml_jni.h">
<classpath>
<pathelement location="${out.classes.absolute.dir}" />
</classpath>
<class name="org.linphone.tools.Lpc2Xml" />
</javah>
</target> </target>
<target name="partial-clean"> <target name="partial-clean">

View file

View file

@ -36,6 +36,10 @@ SRTP_C_INCLUDE= \
endif endif
#endif #endif
#libxml2
ifeq ($(BUILD_REMOTE_PROVISIONING),1)
include $(linphone-root-dir)/submodules/externals/build/libxml2/Android.mk
endif
# Speex # Speex
ifeq ($(wildcard $(linphone-root-dir)/submodules/externals/prebuilts/speex.mk),) ifeq ($(wildcard $(linphone-root-dir)/submodules/externals/prebuilts/speex.mk),)
@ -52,7 +56,7 @@ include $(linphone-root-dir)/submodules/externals/prebuilts/gsm.mk
endif endif
include $(linphone-root-dir)/submodules/externals/build/libantlr3c/Android.mk include $(linphone-root-dir)/submodules/externals/build/antlr3/Android.mk
include $(linphone-root-dir)/submodules/belle-sip/build/android/Android.mk include $(linphone-root-dir)/submodules/belle-sip/build/android/Android.mk
# Openssl # Openssl

View file

@ -1,7 +1,12 @@
APP_PROJECT_PATH := $(call my-dir)/../ APP_PROJECT_PATH := $(call my-dir)/../
APP_MODULES :=libspeex libgsm libortp libantlr3c libbellesip libmediastreamer2 liblinphone liblinphonenoneon libneon APP_MODULES :=libspeex libgsm libortp antlr3 libbellesip libmediastreamer2 liblinphone liblinphonenoneon libneon
APP_STL := stlport_static APP_STL := stlport_static
#remote provisioning
ifeq ($(BUILD_REMOTE_PROVISIONING),1)
APP_MODULES += libxml2 libxml2lpc liblpc2xml
endif
#default values #default values
ifeq ($(BUILD_AMRNB),) ifeq ($(BUILD_AMRNB),)
BUILD_AMRNB=light BUILD_AMRNB=light

View file

@ -11,5 +11,5 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target. # Project target.
target=android-16 target=android-17
android.library=false android.library=false

View file

@ -109,7 +109,7 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:background="@drawable/missed_calls_bg" android:background="@drawable/missed_calls_bg"
android:gravity="center" android:gravity="center"
android:textSize="20dp" android:textSize="20sp"
android:visibility="gone" /> android:visibility="gone" />
</RelativeLayout> </RelativeLayout>
@ -143,7 +143,7 @@
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
android:background="@drawable/missed_calls_bg" android:background="@drawable/missed_calls_bg"
android:gravity="center" android:gravity="center"
android:textSize="20dp" android:textSize="20sp"
android:visibility="gone" /> android:visibility="gone" />
</RelativeLayout> </RelativeLayout>

View file

@ -216,19 +216,6 @@
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:visibility="gone" android:visibility="gone"
android:layout_alignParentRight="true" /> android:layout_alignParentRight="true" />
<TextView
android:id="@+id/exit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/menu_exit"
android:textColor="@android:color/white"
android:textSize="18dp" />
</RelativeLayout> </RelativeLayout>

View file

@ -372,4 +372,6 @@
<string name="call_state_missed">Manqué</string> <string name="call_state_missed">Manqué</string>
<string name="call_state_outgoing">Émis</string> <string name="call_state_outgoing">Émis</string>
<string name="call_state_incoming">Reçu</string> <string name="call_state_incoming">Reçu</string>
<string name="pref_background_mode">Actif en arrière plan</string>
</resources> </resources>

View file

@ -64,8 +64,8 @@
<string name="hangup">Положить трубку</string> <string name="hangup">Положить трубку</string>
<string name="conf_simple_merge_bt_txt">Объединить</string> <string name="conf_simple_merge_bt_txt">Объединить</string>
<string name="conf_simple_transfer_bt_txt">Перевести</string> <string name="conf_simple_transfer_bt_txt">Перевести</string>
<!-- <string name="conf_simple_no_current_call">Нет активного звонка</string>-->
<string name="conf_simple_video_bt_txt">Видео</string> <string name="conf_simple_video_bt_txt">Видео</string>
<!-- <string name="conf_simple_no_current_call">Нет активного звонка</string>-->
<string name="show_send_dtmfs_button">Клавиатура</string> <string name="show_send_dtmfs_button">Клавиатура</string>
<string name="conf_conference">Конференция</string> <string name="conf_conference">Конференция</string>
@ -259,7 +259,7 @@
<string name="status_in_progress">В процессе регистрации</string> <string name="status_in_progress">В процессе регистрации</string>
<string name="status_error">Ошибка регистрации</string> <string name="status_error">Ошибка регистрации</string>
<string name="addressHint">Номер адреса</string> <string name="addressHint">Номер или Адрес</string>
<string name="conference">Конференция</string> <string name="conference">Конференция</string>
<string name="incoming">Входящий звонок</string> <string name="incoming">Входящий звонок</string>
<string name="draft">Черновик</string> <string name="draft">Черновик</string>
@ -321,8 +321,8 @@
<string name="setup_title">Помощник Настройки учётной записи</string> <string name="setup_title">Помощник Настройки учётной записи</string>
<string name="setup_welcome">Этот помощник поможет Вам настроить учётную запись SIP для звонков.</string> <string name="setup_welcome">Этот помощник поможет Вам настроить учётную запись SIP для звонков.</string>
<string name="setup_create_account">Создать учётную запись на linphone.org</string> <string name="setup_create_account">Создать учётную запись на linphone.org</string>
<string name="setup_login_linphone">У меня уже есть учётная запись на linphone.org</string> <string name="setup_login_linphone">Уже есть учётная запись на linphone.org</string>
<string name="setup_login_generic">У меня уже есть учётная запись SIP</string> <string name="setup_login_generic">Уже есть учётная запись SIP</string>
<string name="setup_linphone_account_hint">Введите имя пользователя и пароль учётной записи linphone.org</string> <string name="setup_linphone_account_hint">Введите имя пользователя и пароль учётной записи linphone.org</string>
<string name="setup_general_account_hint">Введите имя пользователя, пароль и сервер учётной записи SIP</string> <string name="setup_general_account_hint">Введите имя пользователя, пароль и сервер учётной записи SIP</string>
<string name="setup_apply">Применить</string> <string name="setup_apply">Применить</string>
@ -411,7 +411,14 @@
<string name="error_user_not_found">Пользователь не найден</string> <string name="error_user_not_found">Пользователь не найден</string>
<string name="error_incompatible_media">Несовместимые параметры потока</string> <string name="error_incompatible_media">Несовместимые параметры потока</string>
<string name="error_low_bandwidth">У ваш собеседника низкая скорость подключения, видео не может быть использовано</string> <string name="error_low_bandwidth">У ваш собеседника низкая скорость подключения, видео не может быть использовано</string>
<string name="error_network_unreachable">Сеть недоступна</string>
<string name="today">Сегодня</string> <string name="today">Сегодня</string>
<string name="yesterday">Вчера</string> <string name="yesterday">Вчера</string>
<string name="call_state_missed">Пропущенный</string>
<string name="call_state_outgoing">Исходящий</string>
<string name="call_state_incoming">Входящий</string>
<string name="pref_background_mode">Фоновый режим</string>
</resources> </resources>

View file

@ -32,7 +32,7 @@
<bool name="disable_animations">false</bool> <bool name="disable_animations">false</bool>
<bool name="show_statusbar_only_on_dialer">true</bool> <bool name="show_statusbar_only_on_dialer">true</bool>
<bool name="lock_statusbar">true</bool> <bool name="lock_statusbar">false</bool>
<bool name="emoticons_in_messages">true</bool> <bool name="emoticons_in_messages">true</bool>
<bool name="only_display_username_if_unknown">true</bool> <bool name="only_display_username_if_unknown">true</bool>
<bool name="display_messages_time_and_status">true</bool> <!-- Used to show the time of each message arrival --> <bool name="display_messages_time_and_status">true</bool> <!-- Used to show the time of each message arrival -->

View file

@ -51,6 +51,7 @@
<bool name="pref_autostart_default">false</bool> <bool name="pref_autostart_default">false</bool>
<string name="pref_incoming_call_timeout_default">30</string> <string name="pref_incoming_call_timeout_default">30</string>
<string name="pref_image_sharing_server_default">https://www.linphone.org:444/upload.php</string> <string name="pref_image_sharing_server_default">https://www.linphone.org:444/upload.php</string>
<string name="pref_remote_provisioning_default"></string>
<string name="pref_audio_use_specific_mode_default">0</string> <string name="pref_audio_use_specific_mode_default">0</string>
<string name="pref_expire_default">3600</string> <string name="pref_expire_default">3600</string>
<string name="pref_display_name_default">Linphone Android</string> <string name="pref_display_name_default">Linphone Android</string>
@ -61,4 +62,5 @@
<bool name="pref_sipinfo_dtmf_default">false</bool> <bool name="pref_sipinfo_dtmf_default">false</bool>
<bool name="pref_rfc2833_dtmf_default">true</bool> <bool name="pref_rfc2833_dtmf_default">true</bool>
<bool name="pref_background_mode_default">true</bool>
</resources> </resources>

View file

@ -92,6 +92,7 @@
<string name="pref_media_encryption_key_none">none</string> <string name="pref_media_encryption_key_none">none</string>
<string name="pref_media_encryption_key_srtp">srtp</string> <string name="pref_media_encryption_key_srtp">srtp</string>
<string name="pref_media_encryption_key_zrtp">zrtp</string> <string name="pref_media_encryption_key_zrtp">zrtp</string>
<string name="pref_background_mode_key">pref_background_mode_key</string>
<string name="push_reg_id_key">push_reg_id_key</string> <string name="push_reg_id_key">push_reg_id_key</string>
<string name="push_sender_id_key">push_sender_id_key</string> <string name="push_sender_id_key">push_sender_id_key</string>
@ -99,6 +100,7 @@
<string name="pref_auto_accept_friends_key">pref_auto_accept_friends_key</string> <string name="pref_auto_accept_friends_key">pref_auto_accept_friends_key</string>
<string name="pref_image_sharing_server_key">pref_image_sharing_server_key</string> <string name="pref_image_sharing_server_key">pref_image_sharing_server_key</string>
<string name="pref_remote_provisioning_key">pref_remote_provisioning_key</string>
<string name="pref_video_port_key">pref_video_port_key</string> <string name="pref_video_port_key">pref_video_port_key</string>
<string name="pref_audio_port_key">pref_audio_port_key</string> <string name="pref_audio_port_key">pref_audio_port_key</string>

View file

@ -392,6 +392,7 @@
<string name="linphone_friend_new_request_desc">wants to share it\'s presence status with you and be aware of yours.</string> <string name="linphone_friend_new_request_desc">wants to share it\'s presence status with you and be aware of yours.</string>
<string name="setup_ec_calibration">Echo canceller calibration in progress</string> <string name="setup_ec_calibration">Echo canceller calibration in progress</string>
<string name="pref_image_sharing_server_title">Sharing server</string> <string name="pref_image_sharing_server_title">Sharing server</string>
<string name="pref_remote_provisioning_title">Remote provisioning</string>
<string name="delete_contact">Delete contact</string> <string name="delete_contact">Delete contact</string>
<string name="sip_address">SIP address</string> <string name="sip_address">SIP address</string>
@ -419,4 +420,6 @@
<string name="call_state_missed">Missed</string> <string name="call_state_missed">Missed</string>
<string name="call_state_outgoing">Outgoing</string> <string name="call_state_outgoing">Outgoing</string>
<string name="call_state_incoming">Incoming</string> <string name="call_state_incoming">Incoming</string>
<string name="pref_background_mode">Background mode</string>
</resources> </resources>

View file

@ -283,6 +283,11 @@
android:title="@string/pref_debug" android:title="@string/pref_debug"
android:defaultValue="@bool/pref_debug_default"/> android:defaultValue="@bool/pref_debug_default"/>
<CheckBoxPreference
android:key="@string/pref_background_mode_key"
android:title="@string/pref_background_mode"
android:defaultValue="@bool/pref_background_mode_default"/>
<CheckBoxPreference <CheckBoxPreference
android:defaultValue="@bool/pref_animation_enable_default" android:defaultValue="@bool/pref_animation_enable_default"
android:title="@string/pref_animation_enable_title" android:title="@string/pref_animation_enable_title"
@ -310,6 +315,11 @@
android:title="@string/pref_image_sharing_server_title" android:title="@string/pref_image_sharing_server_title"
android:defaultValue="@string/pref_image_sharing_server_default" /> android:defaultValue="@string/pref_image_sharing_server_default" />
<EditTextPreference
android:key="@string/pref_remote_provisioning_key"
android:title="@string/pref_remote_provisioning_title"
android:defaultValue="@string/pref_remote_provisioning_default" />
<PreferenceCategory <PreferenceCategory
android:title="@string/pref_primary_account_title"> android:title="@string/pref_primary_account_title">

View file

@ -323,7 +323,7 @@ public class InCallActivity extends FragmentActivity implements
if (id == R.id.video) { if (id == R.id.video) {
isVideoEnabled = !isVideoEnabled; isVideoEnabled = !isVideoEnabled;
switchVideo(isVideoEnabled); switchVideo(isVideoEnabled, true);
} }
else if (id == R.id.micro) { else if (id == R.id.micro) {
toggleMicro(); toggleMicro();
@ -386,7 +386,7 @@ public class InCallActivity extends FragmentActivity implements
}); });
} }
private void switchVideo(final boolean displayVideo) { private void switchVideo(final boolean displayVideo, final boolean isInitiator) {
final LinphoneCall call = LinphoneManager.getLc().getCalls()[0]; final LinphoneCall call = LinphoneManager.getLc().getCalls()[0];
if (call == null) { if (call == null) {
return; return;
@ -396,10 +396,11 @@ public class InCallActivity extends FragmentActivity implements
@Override @Override
public void run() { public void run() {
if (!displayVideo) { if (!displayVideo) {
LinphoneCallParams params = call.getCurrentParamsCopy(); if (isInitiator) {
params.setVideoEnabled(false); LinphoneCallParams params = call.getCurrentParamsCopy();
LinphoneManager.getLc().updateCall(call, params); params.setVideoEnabled(false);
LinphoneManager.getLc().updateCall(call, params);
}
showAudioView(); showAudioView();
} else { } else {
if (!call.getRemoteParams().isLowBandwidthEnabled()) { if (!call.getRemoteParams().isLowBandwidthEnabled()) {
@ -965,7 +966,7 @@ public class InCallActivity extends FragmentActivity implements
boolean isVideoEnabledInCall = call.getCurrentParamsCopy().getVideoEnabled(); boolean isVideoEnabledInCall = call.getCurrentParamsCopy().getVideoEnabled();
if (isVideoEnabledInCall != isVideoEnabled) { if (isVideoEnabledInCall != isVideoEnabled) {
isVideoEnabled = isVideoEnabledInCall; isVideoEnabled = isVideoEnabledInCall;
switchVideo(isVideoEnabled); switchVideo(isVideoEnabled, false);
} }
// The following should not be needed except some devices need it (e.g. Galaxy S). // The following should not be needed except some devices need it (e.g. Galaxy S).

View file

@ -1242,6 +1242,10 @@ public class LinphoneActivity extends FragmentActivity implements
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
if (!LinphoneService.isReady()) {
startService(new Intent(ACTION_MAIN).setClass(this, LinphoneService.class));
}
// Remove to avoid duplication of the listeners // Remove to avoid duplication of the listeners
LinphoneManager.removeListener(this); LinphoneManager.removeListener(this);
@ -1255,6 +1259,7 @@ public class LinphoneActivity extends FragmentActivity implements
chatStorage = new ChatStorage(this); chatStorage = new ChatStorage(this);
updateMissedChatCount(); updateMissedChatCount();
displayMissedCalls(LinphoneManager.getLc().getMissedCallsCount()); displayMissedCalls(LinphoneManager.getLc().getMissedCallsCount());
if (LinphoneManager.getLc().getCalls().length > 0) { if (LinphoneManager.getLc().getCalls().length > 0) {
@ -1360,7 +1365,11 @@ public class LinphoneActivity extends FragmentActivity implements
public boolean onKeyDown(int keyCode, KeyEvent event) { public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) { if (keyCode == KeyEvent.KEYCODE_BACK) {
if (currentFragment == FragmentsAvailable.DIALER) { if (currentFragment == FragmentsAvailable.DIALER) {
if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) { boolean isBackgroundModeActive = PreferenceManager.getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_background_mode_key), getResources().getBoolean(R.bool.pref_background_mode_default));
if (!isBackgroundModeActive) {
stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class));
finish();
} else if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) {
return true; return true;
} }
} else if (!isTablet()) { } else if (!isTablet()) {

View file

@ -139,7 +139,6 @@ public final class LinphoneManager implements LinphoneCoreListener {
private String lastLcStatusMessage; private String lastLcStatusMessage;
private String basePath; private String basePath;
private static boolean sExited; private static boolean sExited;
private boolean videoInitiator = false;
private WakeLock mIncallWakeLock; private WakeLock mIncallWakeLock;
@ -152,21 +151,13 @@ public final class LinphoneManager implements LinphoneCoreListener {
public static void removeListener(LinphoneSimpleListener listener) { public static void removeListener(LinphoneSimpleListener listener) {
simpleListeners.remove(listener); simpleListeners.remove(listener);
} }
public boolean isVideoInitiator() {
return videoInitiator;
}
public void setVideoInitiator(boolean b) {
videoInitiator = b;
}
private LinphoneManager(final Context c, LinphoneServiceListener listener) { private LinphoneManager(final Context c, LinphoneServiceListener listener) {
sExited=false; sExited=false;
mServiceContext = c; mServiceContext = c;
mListenerDispatcher = new ListenerDispatcher(listener); mListenerDispatcher = new ListenerDispatcher(listener);
basePath = c.getFilesDir().getAbsolutePath(); basePath = c.getFilesDir().getAbsolutePath();
mLPConfigXsd = basePath + "/lpconfig.xsd";
mLinphoneInitialConfigFile = basePath + "/linphonerc"; mLinphoneInitialConfigFile = basePath + "/linphonerc";
mLinphoneConfigFile = basePath + "/.linphonerc"; mLinphoneConfigFile = basePath + "/.linphonerc";
mLinphoneRootCaFile = basePath + "/rootca.pem"; mLinphoneRootCaFile = basePath + "/rootca.pem";
@ -186,6 +177,7 @@ public final class LinphoneManager implements LinphoneCoreListener {
private static final int LINPHONE_VOLUME_STREAM = STREAM_VOICE_CALL; private static final int LINPHONE_VOLUME_STREAM = STREAM_VOICE_CALL;
private static final int dbStep = 4; private static final int dbStep = 4;
/** Called when the activity is first created. */ /** Called when the activity is first created. */
private final String mLPConfigXsd;
private final String mLinphoneInitialConfigFile; private final String mLinphoneInitialConfigFile;
private final String mLinphoneRootCaFile; private final String mLinphoneRootCaFile;
private final String mLinphoneConfigFile; private final String mLinphoneConfigFile;
@ -255,6 +247,10 @@ public final class LinphoneManager implements LinphoneCoreListener {
public static synchronized final LinphoneCore getLc() { public static synchronized final LinphoneCore getLc() {
return getInstance().mLc; return getInstance().mLc;
} }
public String getLPConfigXsdPath() {
return mLPConfigXsd;
}
public void newOutgoingCall(AddressType address) { public void newOutgoingCall(AddressType address) {
String to = address.getText().toString(); String to = address.getText().toString();
@ -417,9 +413,15 @@ public final class LinphoneManager implements LinphoneCoreListener {
copyAssetsFromPackage(); copyAssetsFromPackage();
//traces alway start with traces enable to not missed first initialization //traces alway start with traces enable to not missed first initialization
boolean isDebugLogEnabled = !(mR.getBoolean(R.bool.disable_every_log)) && getPrefBoolean(R.string.pref_debug_key, mR.getBoolean(R.bool.pref_debug_default)); boolean isDebugLogEnabled = true;//!(mR.getBoolean(R.bool.disable_every_log)) && getPrefBoolean(R.string.pref_debug_key, mR.getBoolean(R.bool.pref_debug_default));
LinphoneCoreFactory.instance().setDebugMode(isDebugLogEnabled, getString(R.string.app_name)); LinphoneCoreFactory.instance().setDebugMode(isDebugLogEnabled, getString(R.string.app_name));
// Try to get remote provisioning
String remote_provisioning = (getPrefString(R.string.pref_remote_provisioning_key, mR.getString(R.string.pref_remote_provisioning_default)));
if(remote_provisioning != null && remote_provisioning.length() > 0 && RemoteProvisioning.isAvailable()) {
RemoteProvisioning.download(remote_provisioning, mLinphoneConfigFile);
}
mLc = LinphoneCoreFactory.instance().createLinphoneCore(this, mLinphoneConfigFile, mLinphoneInitialConfigFile, null); mLc = LinphoneCoreFactory.instance().createLinphoneCore(this, mLinphoneConfigFile, mLinphoneInitialConfigFile, null);
mLc.getConfig().setInt("sip", "store_auth_info", 0); mLc.getConfig().setInt("sip", "store_auth_info", 0);
mLc.setContext(c); mLc.setContext(c);
@ -472,6 +474,7 @@ public final class LinphoneManager implements LinphoneCoreListener {
copyIfNotExist(R.raw.ringback,mRingbackSoundFile); copyIfNotExist(R.raw.ringback,mRingbackSoundFile);
copyIfNotExist(R.raw.toy_mono,mPauseSoundFile); copyIfNotExist(R.raw.toy_mono,mPauseSoundFile);
copyFromPackage(R.raw.linphonerc, new File(mLinphoneInitialConfigFile).getName()); copyFromPackage(R.raw.linphonerc, new File(mLinphoneInitialConfigFile).getName());
copyIfNotExist(R.raw.lpconfig, new File(mLPConfigXsd).getName());
copyIfNotExist(R.raw.rootca, new File(mLinphoneRootCaFile).getName()); copyIfNotExist(R.raw.rootca, new File(mLinphoneRootCaFile).getName());
} }
private void copyIfNotExist(int ressourceId,String target) throws IOException { private void copyIfNotExist(int ressourceId,String target) throws IOException {
@ -1255,7 +1258,6 @@ public final class LinphoneManager implements LinphoneCoreListener {
public boolean addVideo() { public boolean addVideo() {
LinphoneCall call = mLc.getCurrentCall(); LinphoneCall call = mLc.getCurrentCall();
enableCamera(call, true); enableCamera(call, true);
setVideoInitiator(true);
return reinviteWithVideo(); return reinviteWithVideo();
} }
@ -1416,7 +1418,6 @@ public final class LinphoneManager implements LinphoneCoreListener {
public void onCallStateChanged(LinphoneCall call, State state, String message) { public void onCallStateChanged(LinphoneCall call, State state, String message) {
if (state == State.OutgoingInit || state == State.IncomingReceived) { if (state == State.OutgoingInit || state == State.IncomingReceived) {
setVideoInitiator(state == State.OutgoingInit);
boolean sendCamera = mLc.getConferenceSize() == 0; boolean sendCamera = mLc.getConferenceSize() == 0;
enableCamera(call, sendCamera); enableCamera(call, sendCamera);
} }

View file

@ -262,7 +262,7 @@ public final class LinphoneUtils {
LinphoneCall.State state = call.getState(); LinphoneCall.State state = call.getState();
return state == LinphoneCall.State.Connected || return state == LinphoneCall.State.Connected ||
state == LinphoneCall.State.CallUpdated || state == LinphoneCall.State.CallUpdating ||
state == LinphoneCall.State.CallUpdatedByRemote || state == LinphoneCall.State.CallUpdatedByRemote ||
state == LinphoneCall.State.StreamsRunning || state == LinphoneCall.State.StreamsRunning ||
state == LinphoneCall.State.Resuming; state == LinphoneCall.State.Resuming;

View file

@ -0,0 +1,112 @@
package org.linphone;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LpConfig;
import org.linphone.mediastream.Log;
import org.linphone.tools.Xml2Lpc;
public class RemoteProvisioning {
static private class RemoteProvisioningThread extends Thread {
String mRPAddress;
String mSchema;
String mLocalLP;
public RemoteProvisioningThread(final String RPAddress, final String LocalLP, final String schema) {
this.mRPAddress = RPAddress;
this.mLocalLP = LocalLP;
this.mSchema = schema;
}
public void run() {
try {
Log.i("Download remote provisioning file from " + mRPAddress);
URL url = new URL(mRPAddress);
URLConnection ucon = url.openConnection();
InputStream is = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
byte[] contents = new byte[1024];
int bytesRead = 0;
String strFileContents = "";
while( (bytesRead = bis.read(contents)) != -1){
strFileContents = new String(contents, 0, bytesRead);
}
Log.i("Download Success");
// Initialize converter
LpConfig lp = LinphoneCoreFactory.instance().createLpConfig(mLocalLP);
Xml2Lpc x2l = new Xml2Lpc();
if(x2l.setXmlString(strFileContents) != 0) {
Log.e("Error during remote provisioning file parsing");
return;
}
// Check if needed
if(mSchema != null) {
if(x2l.setXsdFile(mSchema) != 0) {
Log.e("Error during schema file parsing");
}
if(x2l.validate() != 0) {
Log.e("Can't validate the schema of remote provisioning file");
return;
}
}
// Convert
if(x2l.convert(lp) != 0) {
Log.e("Can't convert remote provisioning file to LinphoneConfig");
return;
}
Log.i("Remote provisioning ok");
} catch (MalformedURLException e) {
Log.e("Invalid remote provisioning url: " + e.getLocalizedMessage());
} catch (IOException e) {
Log.e(e);
} finally {
synchronized(this) {
this.notify();
}
}
}
};
static void download(String address, String lpfile, boolean check) {
try {
String schema = null;
if(check) {
schema = LinphoneManager.getInstance().getLPConfigXsdPath();
}
RemoteProvisioningThread thread = new RemoteProvisioningThread(address, lpfile, schema);
synchronized(thread) {
thread.start();
thread.wait();
}
} catch (InterruptedException e) {
Log.e(e);
}
}
static void download(String address, String lpfile) {
download(address, lpfile, true);
}
static boolean isAvailable() {
if(Xml2Lpc.isAvailable()) {
Log.i("RemoteProvisioning is available");
return true;
} else {
Log.i("RemoteProvisioning is NOT available");
return false;
}
}
}

View file

@ -43,7 +43,6 @@ import android.preference.PreferenceManager;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.Gravity; import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -61,7 +60,7 @@ import android.widget.Toast;
public class StatusFragment extends Fragment { public class StatusFragment extends Fragment {
private Handler mHandler = new Handler(); private Handler mHandler = new Handler();
private Handler refreshHandler = new Handler(); private Handler refreshHandler = new Handler();
private TextView statusText, exit; private TextView statusText;
private ImageView statusLed, callQuality, encryption, background; private ImageView statusLed, callQuality, encryption, background;
private ListView sliderContentAccounts; private ListView sliderContentAccounts;
private TableLayout callStats; private TableLayout callStats;
@ -98,17 +97,6 @@ public class StatusFragment extends Fragment {
}); });
sliderContentAccounts = (ListView) view.findViewById(R.id.accounts); sliderContentAccounts = (ListView) view.findViewById(R.id.accounts);
exit = (TextView) view.findViewById(R.id.exit);
exit.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().exit();
}
return true;
}
});
// We create it once to not delay the first display // We create it once to not delay the first display
populateSliderContent(); populateSliderContent();
@ -330,7 +318,6 @@ public class StatusFragment extends Fragment {
refreshStatusItems(call, call.getCurrentParamsCopy().getVideoEnabled()); refreshStatusItems(call, call.getCurrentParamsCopy().getVideoEnabled());
} }
exit.setVisibility(View.GONE);
statusText.setVisibility(View.GONE); statusText.setVisibility(View.GONE);
encryption.setVisibility(View.VISIBLE); encryption.setVisibility(View.VISIBLE);
@ -338,7 +325,6 @@ public class StatusFragment extends Fragment {
statusLed.setImageResource(R.drawable.led_connected); statusLed.setImageResource(R.drawable.led_connected);
statusText.setText(getString(R.string.status_connected)); statusText.setText(getString(R.string.status_connected));
} else { } else {
exit.setVisibility(View.VISIBLE);
statusText.setVisibility(View.VISIBLE); statusText.setVisibility(View.VISIBLE);
background.setVisibility(View.VISIBLE); background.setVisibility(View.VISIBLE);
encryption.setVisibility(View.GONE); encryption.setVisibility(View.GONE);
@ -554,8 +540,30 @@ public class StatusFragment extends Fragment {
CheckBox checkBox = (CheckBox) v; CheckBox checkBox = (CheckBox) v;
if (checkBox.isChecked()) { if (checkBox.isChecked()) {
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();
int selectedPosition = (Integer) checkBox.getTag(); String tag = (String) checkBox.getTag();
editor.putInt(getString(R.string.pref_default_account_key), selectedPosition); String sipAddress = tag.split(":")[0];
int accountPosition = Integer.parseInt(tag.split(":")[1]);
int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0);
int accountIndex = 0;
for (int i = 0; i < nbAccounts; i++)
{
String keyUsername = getString(R.string.pref_username_key);
String keyDomain = getString(R.string.pref_domain_key);
if (i > 0) {
keyUsername += i + "";
keyDomain += i + "";
}
String username = prefs.getString(keyUsername, "");
String domain = prefs.getString(keyDomain, "");
String identity = username + "@" + domain;
if (identity.equals(sipAddress)) {
accountIndex = i;
break;
}
}
editor.putInt(getString(R.string.pref_default_account_key), accountIndex);
editor.commit(); editor.commit();
for (CheckBox cb : checkboxes) { for (CheckBox cb : checkboxes) {
@ -566,7 +574,7 @@ public class StatusFragment extends Fragment {
checkBox.setEnabled(false); checkBox.setEnabled(false);
LinphoneCore lc = LinphoneManager.getLc(); LinphoneCore lc = LinphoneManager.getLc();
lc.setDefaultProxyConfig((LinphoneProxyConfig) getItem(selectedPosition)); lc.setDefaultProxyConfig((LinphoneProxyConfig) getItem(accountPosition));
if (lc.isNetworkReachable()) { if (lc.isNetworkReachable()) {
lc.refreshRegisters(); lc.refreshRegisters();
} }
@ -616,17 +624,40 @@ public class StatusFragment extends Fragment {
CheckBox isDefault = (CheckBox) view.findViewById(R.id.Default); CheckBox isDefault = (CheckBox) view.findViewById(R.id.Default);
checkboxes.add(isDefault); checkboxes.add(isDefault);
isDefault.setTag(position); isDefault.setTag(sipAddress + ":" + position);
isDefault.setChecked(false); isDefault.setChecked(false);
isDefault.setEnabled(true); isDefault.setEnabled(true);
if (prefs != null && prefs.getInt(getString(R.string.pref_default_account_key), 0) == position) { if (prefs != null) {
isDefault.setChecked(true); int nbAccounts = prefs.getInt(getString(R.string.pref_extra_accounts), 0);
isDefault.setEnabled(false); int accountIndex = 0;
status.setImageResource(getStatusIconResource(lpc.getState(), true)); for (int i = 0; i < nbAccounts; i++)
{
String keyUsername = getString(R.string.pref_username_key);
String keyDomain = getString(R.string.pref_domain_key);
if (i > 0) {
keyUsername += i + "";
keyDomain += i + "";
}
String username = prefs.getString(keyUsername, "");
String domain = prefs.getString(keyDomain, "");
String id = username + "@" + domain;
if (id.equals(sipAddress)) {
accountIndex = i;
break;
}
}
if (prefs.getInt(getString(R.string.pref_default_account_key), 0) == accountIndex) {
isDefault.setChecked(true);
isDefault.setEnabled(false);
status.setImageResource(getStatusIconResource(lpc.getState(), true));
} else {
status.setImageResource(getStatusIconResource(lpc.getState(), false));
}
} else { } else {
status.setImageResource(getStatusIconResource(lpc.getState(), false)); status.setImageResource(getStatusIconResource(lpc.getState(), false));
} }
isDefault.setOnClickListener(defaultListener); isDefault.setOnClickListener(defaultListener);
return view; return view;

@ -1 +1 @@
Subproject commit 75eaecd44d4f4d3c2e42b0d4c350052452112ceb Subproject commit 2a172e5811851ffa4c3cc17648b9d0423b296bb6

1
submodules/externals/antlr3 vendored Submodule

@ -0,0 +1 @@
Subproject commit 9ea1af70be642604d53e0e1f6096b9ca1ddae8a5

View file

@ -1,13 +1,12 @@
LOCAL_PATH:= $(call my-dir)/../../libantlr3c/src LOCAL_PATH:= $(call my-dir)/../../antlr3/runtime/C/src
include $(CLEAR_VARS) include $(CLEAR_VARS)
LOCAL_MODULE:= libantlr3c LOCAL_MODULE:= antlr3
LOCAL_C_INCLUDES += \ LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/../../../externals/libantlr3c/ \ $(LOCAL_PATH)/../../../../externals/antlr3 \
$(LOCAL_PATH)/../../../externals/libantlr3c/include \ $(LOCAL_PATH)/../include
LOCAL_SRC_FILES := \ LOCAL_SRC_FILES := \
antlr3baserecognizer.c \ antlr3baserecognizer.c \
antlr3basetree.c \ antlr3basetree.c \
@ -30,10 +29,8 @@ LOCAL_SRC_FILES := \
antlr3parser.c \ antlr3parser.c \
antlr3rewritestreams.c \ antlr3rewritestreams.c \
antlr3string.c \ antlr3string.c \
antlr3stringstream.c \
antlr3tokenstream.c \ antlr3tokenstream.c \
antlr3treeparser.c \ antlr3treeparser.c \
antlr3ucs2inputstream.c
include $(BUILD_STATIC_LIBRARY) include $(BUILD_STATIC_LIBRARY)

View file

@ -98,19 +98,19 @@
#define PACKAGE_NAME "libantlr3c" #define PACKAGE_NAME "libantlr3c"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "libantlr3c 3.2" #define PACKAGE_STRING "libantlr3c 3.4-beta3"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "libantlr3c" #define PACKAGE_TARNAME "libantlr3c"
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "3.2" #define PACKAGE_VERSION "3.4-beta3"
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Version number of package */ /* Version number of package */
#define VERSION "3.2" #define VERSION "3.4-beta3"
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
<pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the

View file

@ -0,0 +1,68 @@
LOCAL_PATH:= $(call my-dir)/../../libxml2
# We need to build this for both the device (as a shared library)
# and the host (as a static library for tools to use).
common_SRC_FILES := \
SAX.c \
entities.c \
encoding.c \
error.c \
parserInternals.c \
parser.c \
tree.c \
hash.c \
list.c \
xmlIO.c \
xmlmemory.c \
uri.c \
valid.c \
xlink.c \
HTMLparser.c \
HTMLtree.c \
debugXML.c \
xpath.c \
xpointer.c \
xinclude.c \
nanohttp.c \
nanoftp.c \
DOCBparser.c \
catalog.c \
globals.c \
threads.c \
c14n.c \
xmlstring.c \
xmlregexp.c \
xmlschemas.c \
xmlschemastypes.c \
xmlunicode.c \
xmlreader.c \
relaxng.c \
dict.c \
SAX2.c \
legacy.c \
chvalid.c \
pattern.c \
xmlsave.c \
xmlmodule.c \
xmlwriter.c \
schematron.c
common_C_INCLUDES += \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/../build/libxml2 \
# For the device
# =====================================================
include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(common_SRC_FILES)
LOCAL_C_INCLUDES += $(common_C_INCLUDES)
LOCAL_SHARED_LIBRARIES += $(common_SHARED_LIBRARIES)
#LOCAL_CFLAGS += -fvisibility=hidden
LOCAL_MODULE:= libxml2
include $(BUILD_SHARED_LIBRARY)

View file

@ -0,0 +1,311 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* Define to 1 if you have the <ansidecl.h> header file. */
/* #undef HAVE_ANSIDECL_H */
/* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1
/* Define to 1 if you have the <arpa/nameser.h> header file. */
#define HAVE_ARPA_NAMESER_H 1
/* Whether struct sockaddr::__ss_family exists */
/* #undef HAVE_BROKEN_SS_FAMILY */
/* Define to 1 if you have the `class' function. */
/* #undef HAVE_CLASS */
/* Define to 1 if you have the <ctype.h> header file. */
#define HAVE_CTYPE_H 1
/* Define to 1 if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Have dlopen based dso */
#define HAVE_DLOPEN /**/
/* Define to 1 if you have the <dl.h> header file. */
/* #undef HAVE_DL_H */
/* Define to 1 if you have the <errno.h> header file. */
#define HAVE_ERRNO_H 1
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `finite' function. */
#define HAVE_FINITE 1
/* Define to 1 if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1
/* Define to 1 if you have the `fpclass' function. */
/* #undef HAVE_FPCLASS */
/* Define to 1 if you have the `fprintf' function. */
#define HAVE_FPRINTF 1
/* Define to 1 if you have the `fp_class' function. */
/* #undef HAVE_FP_CLASS */
/* Define to 1 if you have the <fp_class.h> header file. */
/* #undef HAVE_FP_CLASS_H */
/* Define to 1 if you have the `ftime' function. */
#define HAVE_FTIME 1
/* Define if getaddrinfo is there */
/* #undef HAVE_GETADDRINFO */
/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1
/* Define to 1 if you have the <ieeefp.h> header file. */
/* #undef HAVE_IEEEFP_H */
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <inttypes.h.h> header file. */
/* #undef HAVE_INTTYPES_H_H */
/* Define if isinf is there */
#define HAVE_ISINF /**/
/* Define if isnan is there */
#define HAVE_ISNAN /**/
/* Define to 1 if you have the `isnand' function. */
/* #undef HAVE_ISNAND */
/* Define if history library is there (-lhistory) */
/* #undef HAVE_LIBHISTORY */
/* Have compression library */
/* #undef HAVE_LIBLZMA */
/* Define if pthread library is there (-lpthread) */
/* #undef HAVE_LIBPTHREAD */
/* Define if readline library is there (-lreadline) */
/* #undef HAVE_LIBREADLINE */
/* Have compression library */
/* #undef HAVE_LIBZ */
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define to 1 if you have the `localtime' function. */
#define HAVE_LOCALTIME 1
/* Define to 1 if you have the <lzma.h> header file. */
/* #undef HAVE_LZMA_H */
/* Define to 1 if you have the <malloc.h> header file. */
/* #undef HAVE_MALLOC_H 1 Already defined in AndroidConfig.h */
/* Define to 1 if you have the <math.h> header file. */
#define HAVE_MATH_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <nan.h> header file. */
/* #undef HAVE_NAN_H */
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <poll.h> header file. */
#define HAVE_POLL_H 1
/* Define to 1 if you have the `printf' function. */
#define HAVE_PRINTF 1
/* Define if <pthread.h> is there */
/* #undef HAVE_PTHREAD_H */
/* Define to 1 if you have the `rand' function. */
#define HAVE_RAND 1
/* Define to 1 if you have the <resolv.h> header file. */
#define HAVE_RESOLV_H 1
/* Have shl_load based dso */
/* #undef HAVE_SHLLOAD */
/* Define to 1 if you have the `signal' function. */
#define HAVE_SIGNAL 1
/* Define to 1 if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H 1
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
/* Define to 1 if you have the `sprintf' function. */
#define HAVE_SPRINTF 1
/* Define to 1 if you have the `srand' function. */
#define HAVE_SRAND 1
/* Define to 1 if you have the `sscanf' function. */
#define HAVE_SSCANF 1
/* Define to 1 if you have the `stat' function. */
#define HAVE_STAT 1
/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strndup' function. */
#define HAVE_STRNDUP 1
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/mman.h> header file. */
#define HAVE_SYS_MMAN_H 1
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/timeb.h> header file. */
#define HAVE_SYS_TIMEB_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the `time' function. */
#define HAVE_TIME 1
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Whether va_copy() is available */
#define HAVE_VA_COPY 1
/* Define to 1 if you have the `vfprintf' function. */
#define HAVE_VFPRINTF 1
/* Define to 1 if you have the `vsnprintf' function. */
#define HAVE_VSNPRINTF 1
/* Define to 1 if you have the `vsprintf' function. */
#define HAVE_VSPRINTF 1
/* Define to 1 if you have the <zlib.h> header file. */
/* #undef HAVE_ZLIB_H */
/* Define to 1 if you have the `_stat' function. */
/* #undef HAVE__STAT */
/* Whether __va_copy() is available */
/* #undef HAVE___VA_COPY */
/* Define as const if the declaration of iconv() needs const. */
/* #undef ICONV_CONST */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "libxml2"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME ""
/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
/* Define to 1 if the C compiler supports function prototypes. */
#define PROTOTYPES 1
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Support for IPv6 */
/* #undef SUPPORT_IP6 */
/* Version number of package */
#define VERSION "2.7.8"
/* Determine what socket length (socklen_t) data type is */
#define XML_SOCKLEN_T socklen_t
/* Using the Win32 Socket implementation */
/* #undef _WINSOCKAPI_ */
/* Define like PROTOTYPES; this can be used by system headers. */
#define __PROTOTYPES 1
/* Win32 Std C name mangling work-around */
/* #undef snprintf */
/* ss_family is not defined here, use __ss_family instead */
/* #undef ss_family */
/* Win32 Std C name mangling work-around */
/* #undef vsnprintf */

View file

@ -0,0 +1,476 @@
/*
* Summary: compile-time version informations
* Description: compile-time version informations for the XML library
*
* Copy: See Copyright for the status of this software.
*
* Author: Daniel Veillard
*/
#ifndef __XML_VERSION_H__
#define __XML_VERSION_H__
#include <libxml/xmlexports.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* use those to be sure nothing nasty will happen if
* your library and includes mismatch
*/
#ifndef LIBXML2_COMPILING_MSCCDEF
XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
#endif /* LIBXML2_COMPILING_MSCCDEF */
/**
* LIBXML_DOTTED_VERSION:
*
* the version string like "1.2.3"
*/
#define LIBXML_DOTTED_VERSION "2.8.0"
/**
* LIBXML_VERSION:
*
* the version number: 1.2.3 value is 10203
*/
#define LIBXML_VERSION 20800
/**
* LIBXML_VERSION_STRING:
*
* the version number string, 1.2.3 value is "10203"
*/
#define LIBXML_VERSION_STRING "20800"
/**
* LIBXML_VERSION_EXTRA:
*
* extra version information, used to show a CVS compilation
*/
#define LIBXML_VERSION_EXTRA "-GITv2.8.0"
/**
* LIBXML_TEST_VERSION:
*
* Macro to check that the libxml version in use is compatible with
* the version the software has been compiled against
*/
#define LIBXML_TEST_VERSION xmlCheckVersion(20800);
#ifndef VMS
#if 0
/**
* WITH_TRIO:
*
* defined if the trio support need to be configured in
*/
#define WITH_TRIO
#else
/**
* WITHOUT_TRIO:
*
* defined if the trio support should not be configured in
*/
#define WITHOUT_TRIO
#endif
#else /* VMS */
/**
* WITH_TRIO:
*
* defined if the trio support need to be configured in
*/
#define WITH_TRIO 1
#endif /* VMS */
/**
* LIBXML_THREAD_ENABLED:
*
* Whether the thread support is configured in
*/
#if 1
#if defined(_REENTRANT) || defined(__MT__) || \
(defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L))
#define LIBXML_THREAD_ENABLED
#endif
#endif
/**
* LIBXML_TREE_ENABLED:
*
* Whether the DOM like tree manipulation API support is configured in
*/
#if 1
#define LIBXML_TREE_ENABLED
#endif
/**
* LIBXML_OUTPUT_ENABLED:
*
* Whether the serialization/saving support is configured in
*/
#if 1
#define LIBXML_OUTPUT_ENABLED
#endif
/**
* LIBXML_PUSH_ENABLED:
*
* Whether the push parsing interfaces are configured in
*/
#if 1
#define LIBXML_PUSH_ENABLED
#endif
/**
* LIBXML_READER_ENABLED:
*
* Whether the xmlReader parsing interface is configured in
*/
#if 1
#define LIBXML_READER_ENABLED
#endif
/**
* LIBXML_PATTERN_ENABLED:
*
* Whether the xmlPattern node selection interface is configured in
*/
#if 1
#define LIBXML_PATTERN_ENABLED
#endif
/**
* LIBXML_WRITER_ENABLED:
*
* Whether the xmlWriter saving interface is configured in
*/
#if 1
#define LIBXML_WRITER_ENABLED
#endif
/**
* LIBXML_SAX1_ENABLED:
*
* Whether the older SAX1 interface is configured in
*/
#if 1
#define LIBXML_SAX1_ENABLED
#endif
/**
* LIBXML_FTP_ENABLED:
*
* Whether the FTP support is configured in
*/
#if 1
#define LIBXML_FTP_ENABLED
#endif
/**
* LIBXML_HTTP_ENABLED:
*
* Whether the HTTP support is configured in
*/
#if 1
#define LIBXML_HTTP_ENABLED
#endif
/**
* LIBXML_VALID_ENABLED:
*
* Whether the DTD validation support is configured in
*/
#if 1
#define LIBXML_VALID_ENABLED
#endif
/**
* LIBXML_HTML_ENABLED:
*
* Whether the HTML support is configured in
*/
#if 1
#define LIBXML_HTML_ENABLED
#endif
/**
* LIBXML_LEGACY_ENABLED:
*
* Whether the deprecated APIs are compiled in for compatibility
*/
#if 1
#define LIBXML_LEGACY_ENABLED
#endif
/**
* LIBXML_C14N_ENABLED:
*
* Whether the Canonicalization support is configured in
*/
#if 1
#define LIBXML_C14N_ENABLED
#endif
/**
* LIBXML_CATALOG_ENABLED:
*
* Whether the Catalog support is configured in
*/
#if 1
#define LIBXML_CATALOG_ENABLED
#endif
/**
* LIBXML_DOCB_ENABLED:
*
* Whether the SGML Docbook support is configured in
*/
#if 1
#define LIBXML_DOCB_ENABLED
#endif
/**
* LIBXML_XPATH_ENABLED:
*
* Whether XPath is configured in
*/
#if 1
#define LIBXML_XPATH_ENABLED
#endif
/**
* LIBXML_XPTR_ENABLED:
*
* Whether XPointer is configured in
*/
#if 1
#define LIBXML_XPTR_ENABLED
#endif
/**
* LIBXML_XINCLUDE_ENABLED:
*
* Whether XInclude is configured in
*/
#if 1
#define LIBXML_XINCLUDE_ENABLED
#endif
/**
* LIBXML_ICONV_ENABLED:
*
* Whether iconv support is available
*/
#if 0
#define LIBXML_ICONV_ENABLED
#endif
/**
* LIBXML_ICU_ENABLED:
*
* Whether icu support is available
*/
#if 0
#define LIBXML_ICU_ENABLED
#endif
/**
* LIBXML_ISO8859X_ENABLED:
*
* Whether ISO-8859-* support is made available in case iconv is not
*/
#if 1
#define LIBXML_ISO8859X_ENABLED
#endif
/**
* LIBXML_DEBUG_ENABLED:
*
* Whether Debugging module is configured in
*/
#if 1
#define LIBXML_DEBUG_ENABLED
#endif
/**
* DEBUG_MEMORY_LOCATION:
*
* Whether the memory debugging is configured in
*/
#if 0
#define DEBUG_MEMORY_LOCATION
#endif
/**
* LIBXML_DEBUG_RUNTIME:
*
* Whether the runtime debugging is configured in
*/
#if 0
#define LIBXML_DEBUG_RUNTIME
#endif
/**
* LIBXML_UNICODE_ENABLED:
*
* Whether the Unicode related interfaces are compiled in
*/
#if 1
#define LIBXML_UNICODE_ENABLED
#endif
/**
* LIBXML_REGEXP_ENABLED:
*
* Whether the regular expressions interfaces are compiled in
*/
#if 1
#define LIBXML_REGEXP_ENABLED
#endif
/**
* LIBXML_AUTOMATA_ENABLED:
*
* Whether the automata interfaces are compiled in
*/
#if 1
#define LIBXML_AUTOMATA_ENABLED
#endif
/**
* LIBXML_EXPR_ENABLED:
*
* Whether the formal expressions interfaces are compiled in
*/
#if 1
#define LIBXML_EXPR_ENABLED
#endif
/**
* LIBXML_SCHEMAS_ENABLED:
*
* Whether the Schemas validation interfaces are compiled in
*/
#if 1
#define LIBXML_SCHEMAS_ENABLED
#endif
/**
* LIBXML_SCHEMATRON_ENABLED:
*
* Whether the Schematron validation interfaces are compiled in
*/
#if 1
#define LIBXML_SCHEMATRON_ENABLED
#endif
/**
* LIBXML_MODULES_ENABLED:
*
* Whether the module interfaces are compiled in
*/
#if 1
#define LIBXML_MODULES_ENABLED
/**
* LIBXML_MODULE_EXTENSION:
*
* the string suffix used by dynamic modules (usually shared libraries)
*/
#define LIBXML_MODULE_EXTENSION ".so"
#endif
/**
* LIBXML_ZLIB_ENABLED:
*
* Whether the Zlib support is compiled in
*/
#if 1
#define LIBXML_ZLIB_ENABLED
#endif
/**
* LIBXML_LZMA_ENABLED:
*
* Whether the Lzma support is compiled in
*/
#if 0
#define LIBXML_LZMA_ENABLED
#endif
#ifdef __GNUC__
#ifdef HAVE_ANSIDECL_H
#include <ansidecl.h>
#endif
/**
* ATTRIBUTE_UNUSED:
*
* Macro used to signal to GCC unused function parameters
*/
#ifndef ATTRIBUTE_UNUSED
#define ATTRIBUTE_UNUSED __attribute__((unused))
#endif
/**
* LIBXML_ATTR_ALLOC_SIZE:
*
* Macro used to indicate to GCC this is an allocator function
*/
#ifndef LIBXML_ATTR_ALLOC_SIZE
# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
# else
# define LIBXML_ATTR_ALLOC_SIZE(x)
# endif
#else
# define LIBXML_ATTR_ALLOC_SIZE(x)
#endif
/**
* LIBXML_ATTR_FORMAT:
*
* Macro used to indicate to GCC the parameter are printf like
*/
#ifndef LIBXML_ATTR_FORMAT
# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
# else
# define LIBXML_ATTR_FORMAT(fmt,args)
# endif
#else
# define LIBXML_ATTR_FORMAT(fmt,args)
#endif
#else /* ! __GNUC__ */
/**
* ATTRIBUTE_UNUSED:
*
* Macro used to signal to GCC unused function parameters
*/
#define ATTRIBUTE_UNUSED
/**
* LIBXML_ATTR_ALLOC_SIZE:
*
* Macro used to indicate to GCC this is an allocator function
*/
#define LIBXML_ATTR_ALLOC_SIZE(x)
/**
* LIBXML_ATTR_FORMAT:
*
* Macro used to indicate to GCC the parameter are printf like
*/
#define LIBXML_ATTR_FORMAT(fmt,args)
#endif /* __GNUC__ */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif

@ -1 +0,0 @@
Subproject commit eb738fb406d2b75e7e94457da800c38d8bfc3c71

1
submodules/externals/libxml2 vendored Submodule

@ -0,0 +1 @@
Subproject commit c943f708f1853de4eb15e5a94cf0b35d108da87a

@ -1 +1 @@
Subproject commit 5ac4b44a7f44ea52ce2720ed21fc2fceaad7f6c1 Subproject commit e9398144e97f7423ef107f9c7fda0e695e0412fd