diff --git a/jni/pjproject-android/.svn/pristine/e8/e831311510f76f839feb8d45b1a1f073e88f443e.svn-base b/jni/pjproject-android/.svn/pristine/e8/e831311510f76f839feb8d45b1a1f073e88f443e.svn-base
new file mode 100644
index 0000000..5fe792a
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/e8/e831311510f76f839feb8d45b1a1f073e88f443e.svn-base
@@ -0,0 +1,106 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#ifndef __SYSTEST_H__
+#define __SYSTEST_H__
+
+#include <pjlib.h>
+
+/*
+ * Overrideable parameters
+ */
+#define REC_DEV_ID			systest_cap_dev_id
+#define PLAY_DEV_ID			systest_play_dev_id
+//#define REC_DEV_ID			5
+//#define PLAY_DEV_ID			5
+#define OVERRIDE_AUDDEV_REC_LAT		0
+#define OVERRIDE_AUDDEV_PLAY_LAT	0
+#define OVERRIDE_AUD_FRAME_PTIME	0
+
+/* Don't change this */
+#define CHANNEL_COUNT			1
+
+/* If you change CLOCK_RATE then the input WAV files need to be
+ * changed, so normally don't need to change this.
+ */
+#define TEST_CLOCK_RATE			8000
+
+/* You may change sound device's clock rate as long as resampling
+ * is enabled.
+ */
+#define DEV_CLOCK_RATE			8000
+
+
+#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE
+    #define LOG_OUT_PATH		"\\PJSYSTEST.TXT"
+    #define RESULT_OUT_PATH		"\\PJSYSTEST_RESULT.TXT"
+    #define WAV_PLAYBACK_PATH		"\\Program Files\\pjsystest\\input.8.wav"
+    #define WAV_REC_OUT_PATH		"\\PJSYSTEST_TESTREC.WAV"
+    #define WAV_TOCK8_PATH		"\\Program Files\\pjsystest\\tock8.WAV"
+    #define WAV_LATENCY_OUT_PATH	"\\PJSYSTEST_LATREC.WAV"
+    #define ALT_PATH1			""
+    #define AEC_REC_PATH		"\\PJSYSTEST_AECREC.WAV"
+#else
+    #define LOG_OUT_PATH		"PJSYSTEST.TXT"
+    #define RESULT_OUT_PATH		"PJSYSTEST_RESULT.TXT"
+    #define WAV_PLAYBACK_PATH		"input.8.wav"
+    #define WAV_REC_OUT_PATH		"PJSYSTEST_TESTREC.WAV"
+    #define WAV_TOCK8_PATH		"tock8.wav"
+    #define WAV_LATENCY_OUT_PATH	"PJSYSTEST_LATREC.WAV"
+    #define ALT_PATH1			"../../tests/pjsua/wavs/"
+    #define AEC_REC_PATH		"PJSYSTEST_AECREC.WAV"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* API, to be called by main() */
+int	    systest_init(void);
+int	    systest_set_dev(int cap_dev, int play_dev);
+int	    systest_run(void);
+void	    systest_save_result(const char *filename);
+void	    systest_deinit(void);
+
+/* Device ID to test */
+extern int systest_cap_dev_id;
+extern int systest_play_dev_id;
+
+/* Test item is used to record the test result */
+typedef struct test_item_t
+{
+    char	title[80];
+    pj_bool_t	skipped;
+    pj_bool_t	success;
+    char	reason[1024];
+} test_item_t;
+
+#define SYSTEST_MAX_TEST    32
+extern unsigned	    test_item_count;
+extern test_item_t  test_items[SYSTEST_MAX_TEST];
+#define PATH_LENGTH	    PJ_MAXPATH
+extern char	    doc_path[PATH_LENGTH];
+extern char	    res_path[PATH_LENGTH];
+
+test_item_t *systest_alloc_test_item(const char *title);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* __SYSTEST_H__ */
