summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2015-06-26 14:09:52 +0100
committerYongqin Liu <yongqin.liu@linaro.org>2015-06-26 14:09:52 +0100
commit55633d55fa1f4e9a041bbff974579fa537dfa8de (patch)
tree750fe2e7b121a089b8b2eae469a89bb0cba6c15f
parenta077cf5c3536d3ecc43fce64a15e9ee1d1ffdca3 (diff)
parentfb4a1697ac3d0520b40d3f333292a2074d333d0c (diff)
Merge branch 'master' of ssh://git.linaro.org/people/yongqin.liu/public/android
-rw-r--r--android-tools/Android.mk2
-rw-r--r--android-tools/monkey.sh5
-rw-r--r--android-tools/sl/Android.mk49
-rw-r--r--android-tools/sl/header.h15
-rw-r--r--android-tools/sl/sl-h.c752
-rw-r--r--android-tools/sl/sl-h.h237
-rw-r--r--android-tools/sl/sl.c237
-rw-r--r--android-tools/sl/sl.h110
-rwxr-xr-xandroid-tools/sl/sl.sh19
-rw-r--r--android-tools/sl/sl.txt23
-rwxr-xr-xbuild.sh1
-rwxr-xr-xscripts-common/sync-common.sh4
12 files changed, 1452 insertions, 2 deletions
diff --git a/android-tools/Android.mk b/android-tools/Android.mk
index 33230f3..77992fa 100644
--- a/android-tools/Android.mk
+++ b/android-tools/Android.mk
@@ -15,3 +15,5 @@ LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)
LOCAL_SRC_FILES := adbroot.sh
LOCAL_MODULE_TAGS := debug
include $(BUILD_PREBUILT)
+
+include $(LOCAL_PATH)/sl/Android.mk
diff --git a/android-tools/monkey.sh b/android-tools/monkey.sh
new file mode 100644
index 0000000..3e32996
--- /dev/null
+++ b/android-tools/monkey.sh
@@ -0,0 +1,5 @@
+#!/system/bin/sh
+
+#/system/bin/disablesuspend.sh
+monkey -s 1 --pct-touch 10 --pct-motion 20 --pct-nav 20 --pct-majornav 30 --pct-appswitch 20 --throttle 500 --pkg-blacklist-file /data/monkey_black_list 30000
+echo RET=$?
diff --git a/android-tools/sl/Android.mk b/android-tools/sl/Android.mk
new file mode 100644
index 0000000..2485093
--- /dev/null
+++ b/android-tools/sl/Android.mk
@@ -0,0 +1,49 @@
+LOCAL_PATH := $(my-dir)
+
+######################################################
+### sl ###
+######################################################
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := sl.c
+LOCAL_STATIC_LIBRARIES := libncurses
+LOCAL_C_INCLUDES += external/ncurses/include
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLE)
+LOCAL_MODULE_TAGS := debug
+LOCAL_MODULE := sl
+
+#LOCAL_MULTILIB := both
+#LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
+#LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
+
+include $(BUILD_EXECUTABLE)
+
+######################################################
+### sl-h ###
+######################################################
+include $(CLEAR_VARS)
+LOCAL_SRC_FILES := sl-h.c
+LOCAL_STATIC_LIBRARIES := libncurses
+LOCAL_C_INCLUDES += external/ncurses/include
+
+#LOCAL_CFLAGS := -DANDROID -DANDROID_TILE_BASED_DECODE -DENABLE_ANDROID_NULL_CONVERT
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLE)
+LOCAL_MODULE_TAGS := debug
+LOCAL_MODULE := sl-h
+
+#LOCAL_MULTILIB := both
+#LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
+#LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32
+
+include $(BUILD_EXECUTABLE)
+
+######################################################
+### libjpeg-test.sh ###
+######################################################
+include $(CLEAR_VARS)
+LOCAL_MODULE := sl.sh
+LOCAL_SRC_FILES := sl.sh
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE_TAGS := debug
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLE)
+include $(BUILD_PREBUILT)
diff --git a/android-tools/sl/header.h b/android-tools/sl/header.h
new file mode 100644
index 0000000..0dc4218
--- /dev/null
+++ b/android-tools/sl/header.h
@@ -0,0 +1,15 @@
+/* *
+ * *
+ * */
+
+extern int add_D51_coach();
+extern int add_D51_coach_r();
+extern int add_sl();
+extern int add_man();
+extern int add_smoke();
+extern int add_smoke_r();
+extern int add_cross();
+extern int begin_gate();
+extern int end_gate();
+extern int x_gate();
+extern void end_proc();
diff --git a/android-tools/sl/sl-h.c b/android-tools/sl/sl-h.c
new file mode 100644
index 0000000..ae934fa
--- /dev/null
+++ b/android-tools/sl/sl-h.c
@@ -0,0 +1,752 @@
+/*========================================
+ * sl.c:
+ * Copyright 1993,1998 Toyoda Masashi
+ * (toyoda@is.titech.ac.jp)
+ * Last Modified: 1998/ 7/22
+ *========================================
+ */
+/* sl version 3.03 : add usleep(20000) */
+/* by Toyoda Masashi 1998/ 7/22 */
+/* sl version 3.02 : D51 flies! Change options. */
+/* by Toyoda Masashi 1993/ 1/19 */
+/* sl version 3.01 : Wheel turns smoother */
+/* by Toyoda Masashi 1992/12/25 */
+/* sl version 3.00 : Add d(D51) option */
+/* by Toyoda Masashi 1992/12/24 */
+/* sl version 2.02 : Bug fixed.(dust remains in screen) */
+/* by Toyoda Masashi 1992/12/17 */
+/* sl version 2.01 : Smoke run and disappear. */
+/* Change '-a' to accident option. */
+/* by Toyoda Masashi 1992/12/16 */
+/* sl version 2.00 : Add a(all),l(long),F(Fly!) options. */
+/* by Toyoda Masashi 1992/12/15 */
+/* sl version 1.02 : Add turning wheel. */
+/* by Toyoda Masashi 1992/12/14 */
+/* sl version 1.01 : Add more complex smoke. */
+/* by Toyoda Masashi 1992/12/14 */
+/* sl version 1.00 : SL runs vomitting out smoke. */
+/* by Toyoda Masashi 1992/12/11 */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <curses.h>
+#include <signal.h>
+#include <unistd.h>
+#include "sl-h.h"
+#include "header.h"
+
+#define RTOL 0
+#define LTOR 1
+
+#ifndef useconds_t
+ #define USLEEP_ARG0_TYPE unsigned
+#else
+ #define USLEEP_ARG0_TYPE useconds_t
+#endif
+
+int ACCIDENT = 0;
+int LOGO = 0;
+int FLY = 0;
+int INTR = 1;
+int PASSNUM = 5;
+int ALL_LENGTH = 0;
+int DIREC = RTOL;
+int WAIT_TIME = 20000;
+
+int my_mvaddstr(int y, int x, char *str)
+{
+ int i = 0;
+
+ for ( ; x < 0; ++x, ++i)
+ if (str[i] == '\0') return ERR;
+ if (mvaddnstr(y, x, &str[i], (int)COLS - x) == ERR) return ERR;
+ return OK;
+}
+
+int my_mvaddstr_r(int y, int x, char *str)
+{
+ int i = 0;
+ char c;
+
+ for ( ; x >= COLS; --x, ++i)
+ if (str[i] == '\0') return ERR;
+ for ( ; str[i] != '\0'; ++i, --x) {
+ c = str[i];
+ switch (c) {
+ case '\\': c = '/'; break;
+ case '/': c = '\\'; break;
+ case '(': c = ')'; break;
+ case ')': c = '('; break;
+ case '[': c = ']'; break;
+ case ']': c = '['; break;
+ }
+ if (mvaddch(y, x, str[i]) == ERR) return ERR;
+ }
+ return OK;
+}
+
+void option(char *str)
+{
+ extern int ACCIDENT, FLY;
+
+ while (*str != '\0') {
+ switch (*str++) {
+ case 'a': ACCIDENT = 1; break;
+ case 'F': FLY = 1; break;
+ case 'l': LOGO = 1; break;
+ case 'e': INTR = 1; break;
+ default: break;
+ }
+ }
+}
+
+int dirc(int y, int x)
+ {
+ if (DIREC == RTOL) {
+ my_mvaddstr(y + 5, cros0l[5] + x - 1, "<-- ");
+ } else {
+ my_mvaddstr(y + 5, cros0l[5] + x - 1, " -->");
+ }
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ int x, i, j, k, p, ONEDIREC, len;
+ int (*sl_func)();
+ time_t t;
+ char num[10];
+ unsigned short int s;
+ char *pp;
+ char *c[D51PATTERNS][D51HIGHT+1];
+
+ for (i = 1; i < argc; ++i) {
+ if (*argv[i] == '-') {
+ option(argv[i] + 1);
+ }
+ }
+ time(&t);
+ s = (unsigned short int)t;
+ seed48(&s);
+#ifdef DEBUG
+ PASSNUM = 3;
+ ONEDIREC = 1;
+ WAIT_TIME = (USLEEP_ARG0_TYPE)100;
+ signal(SIGINT, end_proc);
+#else
+ if (INTR == 0) {
+ signal(SIGINT, SIG_IGN);
+ }
+ PASSNUM = (int)(drand48() * 20.0) + 10;
+ if (drand48() > 0.5) {
+ ONEDIREC = 1;
+ } else {
+ ONEDIREC = 0;
+ }
+ WAIT_TIME = (USLEEP_ARG0_TYPE)(drand48() * 50000.0);
+#endif
+ ALL_LENGTH = (3 * D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH);
+
+ initscr();
+ noecho();
+#ifdef DEBUG
+ printf("%d,%d\n\r", COLS, LINES);
+ printf("Hit any key\n\r");
+ fflush(stdout);
+ getc(stdin);
+#endif
+ leaveok(stdscr, TRUE);
+ scrollok(stdscr, FALSE);
+ (void)curs_set(0);
+
+ DIREC = RTOL;
+ p = 3 * COLS / 10;
+ pp = (char*)malloc((size_t)(COLS + ALL_LENGTH + 10) * (D51HIGHT + 1) * (D51PATTERNS + 1));
+ for (i = 0; i <= (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * D51PATTERNS; ++i) {
+ pp[i] = '\0';
+ }
+
+ for (j = 0; j < D51PATTERNS; ++j) {
+ for (i = 0; i <= D51HIGHT; ++i) {
+ c[j][i] = pp + (COLS + ALL_LENGTH + 2) * i + (COLS + ALL_LENGTH + 1) * (D51HIGHT + 1) * j;
+ for (k = 0; k < COLS; ++k) {
+ strcat(c[j][i], " ");
+ }
+ strncat(c[j][i], d51[j][i], 53);
+ strncat(c[j][i], coal[i], 29);
+ strncat(c[j][i], d51[j][i], 53);
+ strncat(c[j][i], coal[i], 29);
+ strncat(c[j][i], d51[j][i], 53);
+ strncat(c[j][i], coal[i], 29);
+ for (k = 0; k < PASSNUM - 1; ++k) {
+ strncat(c[j][i], coach[i], 88);
+ if ( i == 3 ) {
+ sprintf(num, "%d", k + 1);
+ len = strlen(num);
+ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len);
+ }
+ }
+ strncat(c[j][i], lcoach[i], 89);
+ if ( i == 3 ) {
+ sprintf(num, "%d", k + 1);
+ len = strlen(num);
+ strncpy(c[j][i] + COLS + 254 + (PASSLENGTH * k), num, len);
+ }
+ }
+ }
+ if (FLY != 1) {
+ begin_gate(p);
+ }
+ if (LOGO == 0) {
+ sl_func = add_D51_coach;
+ } else {
+ sl_func = add_sl;
+ }
+ for (x = COLS - 1; ; --x) {
+ if ((*sl_func)(x, c) == ERR) break;
+ if (FLY != 1) {
+ if (add_cross(p) == ERR) break;
+ }
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ if (FLY != 1 && LOGO == 0 && ONEDIREC == 1) {
+ x_gate(p);
+ for (x = 0; ; ++x) {
+ if (add_D51_coach_r(x) == ERR) break;
+ if (add_cross(p) == ERR) break;
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ }
+ if (FLY != 1) {
+ end_gate(p);
+ }
+ mvcur(0, COLS - 1, LINES - 1, 0);
+ (void)curs_set(0);
+ endwin();
+
+ return 0;
+}
+
+void end_proc() {
+ mvcur(0, COLS - 1, LINES - 1, 0);
+ endwin();
+ exit(SIGINT);
+}
+
+
+int add_cross(int p)
+{
+ int i, y, n = 20, hn;
+ static int tt;
+#ifdef DEBUG
+ char buf[100];
+#endif
+
+ hn = n / 2;
+ if ( LOGO == 0) {
+ y = LINES / 2 - 5;
+ } else {
+ y = LINES / 2 - 7;
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ for (i = 8; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros3[i]);
+ }
+#ifdef DEBUG
+ sprintf(buf, "%d", tt);
+ my_mvaddstr(0, 0, buf);
+#endif
+
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ ++tt;
+
+ return 0;
+}
+
+
+int begin_gate(int p)
+{
+ int i, y, n = 20, hn;
+ int tt;
+
+ hn = n / 2;
+ if ( LOGO == 0) {
+ y = LINES / 2 - 5;
+ } else {
+ y = LINES / 2 - 7;
+ }
+
+ for (tt = 0; tt < 80; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros1[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt <= 15; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros2[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt <= 20; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros3[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+
+ return 0;
+}
+
+int end_gate(int p)
+{
+ int i, y, n = 20, hn;
+ int tt;
+
+ hn = n / 2;
+ if ( LOGO == 0) {
+ y = LINES / 2 - 5;
+ } else {
+ y = LINES / 2 - 7;
+ }
+
+ for (tt = 0; tt <= 20; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros3[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt <= 15; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros2[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt < 80; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros1[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+
+ return 0;
+}
+
+
+int x_gate(int p)
+ {
+ int i, y, n = 20, hn;
+ int tt;
+
+ hn = n / 2;
+ if ( LOGO == 0) {
+ y = LINES / 2 - 5;
+ } else {
+ y = LINES / 2 - 7;
+ }
+
+ for (tt = 0; tt <= 20; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros3[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt <= 10; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros2[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ DIREC = ( DIREC + 1 ) % 2;
+ for (tt = 0; tt <= 10; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros2[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+ for (tt = 0; tt <= 20; ++tt) {
+ for (i = 0; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, p + 5, cros3[i]);
+ }
+ for (i = 2; i < D51HIGHT; ++i) {
+ my_mvaddstr(y + i, cros0l[i] + p, cros0[i]);
+ }
+ if ( tt % n >= 0 && tt % n < hn) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "O");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "X");
+ my_mvaddstr(y + 5, cros0l[5] + p - 1, " || ");
+ } else if ( tt % n >= hn && tt % n < n) {
+ my_mvaddstr(y + 4, cros0l[5] + p - 1, "X");
+ my_mvaddstr(y + 4, cros0l[5] + p + 2, "O");
+ dirc(y, p);
+ }
+ my_mvaddstr(LINES + 1, COLS + 1, "");
+ refresh();
+ usleep((USLEEP_ARG0_TYPE)WAIT_TIME);
+ }
+
+ return 0;
+}
+
+int add_sl(int x, char *c[])
+{
+ static char *sl[LOGOPATTERNS][LOGOHIGHT + 1]
+ = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}};
+
+ static char *car[LOGOHIGHT + 1]
+ = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN};
+
+ int i, y, py1 = 0, py2 = 0, py3 = 0;
+ if (x < - LOGOLENGTH) return ERR;
+ y = LINES / 2 - 3;
+
+ if (FLY == 1) {
+ y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT;
+ py1 = 2; py2 = 4; py3 = 6;
+ }
+ for (i = 0; i <= LOGOHIGHT; ++i) {
+ my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]);
+ my_mvaddstr(y + i + py1, x + 21, lcoal[i]);
+ my_mvaddstr(y + i + py2, x + 42, car[i]);
+ my_mvaddstr(y + i + py3, x + 63, car[i]);
+ }
+ if (ACCIDENT == 1) {
+ add_man(y + 1, x + 14);
+ add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53);
+ add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74);
+ }
+ add_smoke(y - 1, x + LOGOFUNNEL);
+ return OK;
+}
+
+
+int add_D51_coach(int x, char *c[])
+{
+ int y, i, dy = 0;
+#ifdef DEBUG
+ char buf[100];
+#endif
+
+ if (x < ( 4 - ALL_LENGTH )) return ERR;
+ y = LINES / 2 - 5;
+
+#ifdef DEBUG
+ sprintf(buf, "%d", x);
+ my_mvaddstr(1, 0, buf);
+#endif
+ if (FLY == 1) {
+ y = (x / 7) + LINES - (COLS / 7) - D51HIGHT;
+ dy = 1;
+ }
+ for (i = 0; i <= D51HIGHT; ++i) {
+ my_mvaddstr(y + i, 0, c[(D51HIGHT + 1) * ((ALL_LENGTH + x) % D51PATTERNS) + i] + COLS - x);
+ }
+ if (ACCIDENT == 1) {
+ add_man(y + 2, x + 43);
+ add_man(y + 2, x + 47);
+ add_man(y + 2, x + 125);
+ add_man(y + 2, x + 129);
+ add_man(y + 2, x + 207);
+ add_man(y + 2, x + 211);
+ }
+ add_smoke(y - 1, x + D51FUNNEL);
+ add_smoke(y - 1, x + D51FUNNEL + 81);
+ add_smoke(y - 1, x + D51FUNNEL + 162);
+ return OK;
+}
+
+
+int add_D51_coach_r(int x)
+{
+ int y, i, j;
+ char num[10];
+
+ if (x > ALL_LENGTH + COLS) return ERR;
+ y = LINES / 2 - 5;
+
+ for (i = 0; i <= D51HIGHT; ++i) {
+ my_mvaddstr_r(y + i, x, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]);
+ my_mvaddstr_r(y + i, x - 53, coal[i]);
+ my_mvaddstr_r(y + i, x - 82, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]);
+ my_mvaddstr_r(y + i, x - 135, coal[i]);
+ my_mvaddstr_r(y + i, x - 164, d51_r[(ALL_LENGTH + x) % D51PATTERNS][i]);
+ my_mvaddstr_r(y + i, x - 217, coal[i]);
+ for (j = 0; j < PASSNUM - 1; ++j) {
+ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * j), coach[i]);
+ if ( i == 3 ) {
+ sprintf(num, "%d", j + 1);
+ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * j), num);
+ }
+ }
+ my_mvaddstr_r(y + i, x - 246 - (PASSLENGTH * (PASSNUM - 1)), lcoach[i]);
+ if ( i == 3 ) {
+ sprintf(num, "%d", j + 1);
+ my_mvaddstr(y + i, x - 255 - (PASSLENGTH * (PASSNUM - 1)), num);
+ }
+ }
+ if (ACCIDENT == 1) {
+ add_man(y + 2, x - 45);
+ add_man(y + 2, x - 49);
+ add_man(y + 2, x - 127);
+ add_man(y + 2, x - 131);
+ add_man(y + 2, x - 209);
+ add_man(y + 2, x - 213);
+
+ }
+ add_smoke_r(y - 1, x - D51FUNNEL - 3);
+ add_smoke_r(y - 1, x - D51FUNNEL - 84);
+ add_smoke_r(y - 1, x - D51FUNNEL - 167);
+ return OK;
+}
+
+
+int add_man(int y, int x)
+{
+ static char *man[2][2] = {{"", "(O)"}, {"Help!", "\\O/"}};
+ int i;
+
+ if ( x < 0 ) {
+ return 0;
+ }
+ for (i = 0; i < 2; ++i) {
+ my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]);
+ }
+ return 0;
+}
+
+
+int add_smoke(int y, int x)
+#define SMOKEPTNS 16
+{
+ static struct smokes {
+ int y, x;
+ int ptrn, kind;
+ } S[1000];
+ static int sum = 0;
+ static char *Smoke[2][SMOKEPTNS]
+ = {{"( )", "( )", "( )", "( )", "( )",
+ "( )" , "( )" , "( )" , "()" , "()" ,
+ "O" , "O" , "O" , "O" , "O" ,
+ " " },
+ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)",
+ "(@@)" , "(@)" , "(@)" , "@@" , "@@" ,
+ "@" , "@" , "@" , "@" , "@" ,
+ " " }};
+ static char *Eraser[SMOKEPTNS]
+ = {" ", " ", " ", " ", " ",
+ " " , " " , " " , " " , " " ,
+ " " , " " , " " , " " , " " ,
+ " " };
+ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 };
+ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 3, 3, 3 };
+ int i;
+
+ if (x < - COLS) {
+ return 0;
+ }
+
+ if (x % 4 == 0) {
+ for (i = 0; i < sum; ++i) {
+ my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]);
+ S[i].y -= dy[S[i].ptrn];
+ S[i].x += dx[S[i].ptrn];
+ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0;
+ my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]);
+ }
+ my_mvaddstr(y, x, Smoke[sum % 2][0]);
+ S[sum].y = y; S[sum].x = x;
+ S[sum].ptrn = 0; S[sum].kind = sum % 2;
+ sum ++;
+ }
+ return 0;
+}
+
+
+int add_smoke_r(int y, int x)
+#define SMOKEPTNS 16
+{
+ static struct smokes {
+ int y, x;
+ int ptrn, kind;
+ } S[1000];
+ static int sum = 0;
+ static char *Smoke[2][SMOKEPTNS]
+ = {{"( )", "( )", "( )", "( )", "( )",
+ "( )" , "( )" , "( )" , "()" , "()" ,
+ "O" , "O" , "O" , "O" , "O" ,
+ " " },
+ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)",
+ "(@@)" , "(@)" , "(@)" , "@@" , "@@" ,
+ "@" , "@" , "@" , "@" , "@" ,
+ " " }};
+ static char *Eraser[SMOKEPTNS]
+ = {" ", " ", " ", " ", " ",
+ " " , " " , " " , " " , " " ,
+ " " , " " , " " , " " , " " ,
+ " " };
+ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 };
+ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 3, 3, 3 };
+ int i;
+
+ if (x > 2 * COLS) {
+ return 0;
+ }
+
+ if (x % 4 == 0) {
+ for (i = 0; i < sum; ++i) {
+ my_mvaddstr_r(S[i].y, S[i].x, Eraser[S[i].ptrn]);
+ S[i].y -= dy[S[i].ptrn];
+ S[i].x -= dx[S[i].ptrn];
+ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0;
+ my_mvaddstr_r(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]);
+ }
+ my_mvaddstr(y, x, Smoke[sum % 2][0]);
+ S[sum].y = y; S[sum].x = x;
+ S[sum].ptrn = 0; S[sum].kind = sum % 2;
+ sum ++;
+ }
+ return 0;
+}
diff --git a/android-tools/sl/sl-h.h b/android-tools/sl/sl-h.h
new file mode 100644
index 0000000..f968a70
--- /dev/null
+++ b/android-tools/sl/sl-h.h
@@ -0,0 +1,237 @@
+/*========================================
+ * sl.h: Text data of SL version 3.01
+ * Copyright 1993 Toyoda Masashi
+ * (toyoda@is.titech.ac.jp)
+ * Last Modified: 1992/12/23
+ *========================================
+ */
+
+#define D51HIGHT 10
+#define D51FUNNEL 7
+/*#define D51LENGTH 82*/
+#define D51LENGTH 172
+#define D51PATTERNS 6
+
+
+#define D51STR1 " ==== ________ ___________ "
+#define D51STR2 " _D _| |_______/ \\__I_I_____===__|_________| "
+#define D51STR3 " |(_)--- | H\\________/ | | =|___ ___| "
+#define D51STR4 " / | | H | | | | ||_| |_|| "
+#define D51STR5 " | | | H |__--------------------| [___] | "
+#define D51STR6 " | ________|___H__/__|_____/[][]~\\_______| | "
+#define D51STR7 " |/ | |-----------I_____I [][] [] D |=======|__ "
+
+#define D51WHL11 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL12 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL13 " \\_/ \\O=====O=====O=====O_/ \\_/ "
+
+#define D51WHL21 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL22 " |/-=|___|=O=====O=====O=====O |_____/~\\___/ "
+#define D51WHL23 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL31 "__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__ "
+#define D51WHL32 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL33 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL41 "__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__ "
+#define D51WHL42 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL43 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL51 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL52 " |/-=|___|= O=====O=====O=====O|_____/~\\___/ "
+#define D51WHL53 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL61 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL62 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL63 " \\_/ \\_O=====O=====O=====O/ \\_/ "
+
+#define D51DEL " "
+
+#define COAL01 " "
+#define COAL02 " "
+#define COAL03 " _________________ "
+#define COAL04 " _| \\_____A "
+#define COAL05 " =| | "
+#define COAL06 " -| | "
+#define COAL07 "__|________________________|_"
+#define COAL08 "|__________________________|_"
+#define COAL09 " |_D__D__D_| |_D__D__D_| "
+#define COAL10 " \\_/ \\_/ \\_/ \\_/ "
+
+#define COALDEL " "
+
+#define LOGOHIGHT 6
+#define LOGOFUNNEL 4
+#define LOGOLENGTH 84
+#define LOGOPATTERNS 6
+
+#define LOGO1 " ++ +------ "
+#define LOGO2 " || |+-+ | "
+#define LOGO3 " /---------|| | | "
+#define LOGO4 " + ======== +-+ | "
+
+#define LWHL11 " _|--O========O~\\-+ "
+#define LWHL12 "//// \\_/ \\_/ "
+
+#define LWHL21 " _|--/O========O\\-+ "
+#define LWHL22 "//// \\_/ \\_/ "
+
+#define LWHL31 " _|--/~O========O-+ "
+#define LWHL32 "//// \\_/ \\_/ "
+
+#define LWHL41 " _|--/~\\------/~\\-+ "
+#define LWHL42 "//// \\_O========O "
+
+#define LWHL51 " _|--/~\\------/~\\-+ "
+#define LWHL52 "//// \\O========O/ "
+
+#define LWHL61 " _|--/~\\------/~\\-+ "
+#define LWHL62 "//// O========O_/ "
+
+#define LCOAL1 "____ "
+#define LCOAL2 "| \\@@@@@@@@@@@ "
+#define LCOAL3 "| \\@@@@@@@@@@@@@_ "
+#define LCOAL4 "| | "
+#define LCOAL5 "|__________________| "
+#define LCOAL6 " (O) (O) "
+
+#define LCAR1 "____________________ "
+#define LCAR2 "| ___ ___ ___ ___ | "
+#define LCAR3 "| |_| |_| |_| |_| | "
+#define LCAR4 "|__________________| "
+#define LCAR5 "|__________________| "
+#define LCAR6 " (O) (O) "
+
+#define DELLN " "
+
+#define PASSLENGTH 88
+
+#define PASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ "
+#define PASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|_________ "
+#define PASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ | "
+#define PASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | | "
+#define PASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | "
+#define PASS06 " | | | | | | "
+#define PASS07 " | | | @@ | | | "
+#define PASS08 "__|_|__|________________________________________________________________________|__|_|__"
+#define PASS09 "\\==|_/_\\____/_\\_| |______|Z +--|_________________|------+ |_/_\\____/_\\_|==/"
+#define PASS10 " \\_/ \\_/ +++~~ \\_/ \\_/ "
+
+#define PASSDEL " "
+
+#define LPASSLENGTH 88
+
+#define LPASS01 " _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ "
+#define LPASS02 " _________|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|__|___|________ "
+#define LPASS03 " | ____ _____ _____ _____ _____ _____ _____ _____ _____ _____ ____ _____| "
+#define LPASS04 " | | | | | | | | | | | | | | | | | | | | | | | | | "
+#define LPASS05 " | | | |___| |___| |___| |___| |___| |___| |___| |___| |___| | | | | "
+#define LPASS06 " | | | | | |___| "
+#define LPASS07 " | | | @@ | | |_|_| "
+#define LPASS08 "__|_|__|_________________________________________________________________|__|___|_|_|___ "
+#define LPASS09 "\\==|_/_\\____/_\\_| |______|XX +-|_______|------+ |_/_\\____/_\\_|==/ "
+#define LPASS10 " \\_/ \\_/ \\_/ \\_/ "
+
+#define LPASSDEL " "
+
+#define CROS001 ""
+#define CROS002 ""
+#define CROS003 "-_||_-"
+#define CROS004 "_><_"
+#define CROS005 "- || -"
+#define CROS006 "||"
+#define CROS007 "||"
+#define CROS008 "||"
+#define CROS009 "||"
+#define CROS010 "\\&||~"
+
+static int cros0l[] = {0, 0, 0, 1, 0, 2, 2, 2, 2, 0};
+
+#define CROS101 " | "
+#define CROS102 " | "
+#define CROS103 " | "
+#define CROS104 " | "
+#define CROS105 " | "
+#define CROS106 " | "
+#define CROS107 " | "
+#define CROS108 " | "
+#define CROS109 "_|_ "
+#define CROS110 "||| "
+
+#define CROS201 " / "
+#define CROS202 " / "
+#define CROS203 " / "
+#define CROS204 " / "
+#define CROS205 " / "
+#define CROS206 " / "
+#define CROS207 " / "
+#define CROS208 " / "
+#define CROS209 "__/ "
+#define CROS210 "|/| "
+
+#define CROS301 " "
+#define CROS302 " "
+#define CROS303 " "
+#define CROS304 " "
+#define CROS305 " "
+#define CROS306 " "
+#define CROS307 " "
+#define CROS308 " "
+#define CROS309 "___"
+#define CROS310 "|-+-----------------"
+
+/*#define PASSNUM 5*/
+/*#define ALL_LENGTH (D51LENGTH + (PASSLENGTH * (PASSNUM - 1)) + LPASSLENGTH)*/
+
+static char *cros0[D51HIGHT]
+= {CROS001, CROS002, CROS003, CROS004, CROS005,
+ CROS006, CROS007, CROS008, CROS009, CROS010};
+static char *cros1[D51HIGHT]
+= {CROS101, CROS102, CROS103, CROS104, CROS105,
+ CROS106, CROS107, CROS108, CROS109, CROS110};
+static char *cros2[D51HIGHT]
+= {CROS201, CROS202, CROS203, CROS204, CROS205,
+ CROS206, CROS207, CROS208, CROS209, CROS210};
+static char *cros3[D51HIGHT]
+= {CROS301, CROS302, CROS303, CROS304, CROS305,
+ CROS306, CROS307, CROS308, CROS309, CROS310};
+
+static char *lcoal[LOGOHIGHT + 1]
+= {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN};
+
+static char *d51[D51PATTERNS][D51HIGHT + 1]
+= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL11, D51WHL12, D51WHL13, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL21, D51WHL22, D51WHL23, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL31, D51WHL32, D51WHL33, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL41, D51WHL42, D51WHL43, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL51, D51WHL52, D51WHL53, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL61, D51WHL62, D51WHL63, D51DEL}};
+static char *coal[D51HIGHT + 1]
+= {COAL01, COAL02, COAL03, COAL04, COAL05,
+ COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL};
+static char *coach[D51HIGHT + 1]
+= {PASS01, PASS02, PASS03, PASS04, PASS05,
+ PASS06, PASS07, PASS08, PASS09, PASS10, PASSDEL};
+static char *lcoach[D51HIGHT + 1]
+= {LPASS01, LPASS02, LPASS03, LPASS04, LPASS05,
+ LPASS06, LPASS07, LPASS08, LPASS09, LPASS10, LPASSDEL};
+
+static char *d51_r[D51PATTERNS][D51HIGHT + 1]
+= {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL11, D51WHL12, D51WHL13, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL61, D51WHL62, D51WHL63, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL51, D51WHL52, D51WHL53, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL41, D51WHL42, D51WHL43, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL31, D51WHL32, D51WHL33, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL21, D51WHL22, D51WHL23, D51DEL}};
diff --git a/android-tools/sl/sl.c b/android-tools/sl/sl.c
new file mode 100644
index 0000000..f9b5b24
--- /dev/null
+++ b/android-tools/sl/sl.c
@@ -0,0 +1,237 @@
+/*========================================
+ * sl.c:
+ * Copyright 1993,1998 Toyoda Masashi
+ * (toyoda@is.titech.ac.jp)
+ * Last Modified: 1998/ 7/22
+ *========================================
+ */
+/* sl version 3.03 : add usleep(20000) */
+/* by Toyoda Masashi 1998/ 7/22 */
+/* sl version 3.02 : D51 flies! Change options. */
+/* by Toyoda Masashi 1993/ 1/19 */
+/* sl version 3.01 : Wheel turns smoother */
+/* by Toyoda Masashi 1992/12/25 */
+/* sl version 3.00 : Add d(D51) option */
+/* by Toyoda Masashi 1992/12/24 */
+/* sl version 2.02 : Bug fixed.(dust remains in screen) */
+/* by Toyoda Masashi 1992/12/17 */
+/* sl version 2.01 : Smoke run and disappear. */
+/* Change '-a' to accident option. */
+/* by Toyoda Masashi 1992/12/16 */
+/* sl version 2.00 : Add a(all),l(long),F(Fly!) options. */
+/* by Toyoda Masashi 1992/12/15 */
+/* sl version 1.02 : Add turning wheel. */
+/* by Toyoda Masashi 1992/12/14 */
+/* sl version 1.01 : Add more complex smoke. */
+/* by Toyoda Masashi 1992/12/14 */
+/* sl version 1.00 : SL runs vomitting out smoke. */
+/* by Toyoda Masashi 1992/12/11 */
+
+#include <curses.h>
+#include <signal.h>
+#include <unistd.h>
+#include "sl.h"
+
+int ACCIDENT = 0;
+int LOGO = 0;
+int FLY = 0;
+int INTR = 0;
+
+int my_mvaddstr(int y, int x, char *str)
+{
+ for ( ; x < 0; ++x, ++str)
+ if (*str == '\0') return ERR;
+ for ( ; *str != '\0'; ++str, ++x)
+ if (mvaddch(y, x, *str) == ERR) return ERR;
+ return OK;
+}
+
+void option(char *str)
+{
+ extern int ACCIDENT, FLY;
+
+ while (*str != '\0') {
+ switch (*str++) {
+ case 'a': ACCIDENT = 1; break;
+ case 'F': FLY = 1; break;
+ case 'l': LOGO = 1; break;
+ case 'e': INTR = 1; break;
+ default: break;
+ }
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ int x, i;
+
+ for (i = 1; i < argc; ++i) {
+ if (*argv[i] == '-') {
+ option(argv[i] + 1);
+ }
+ }
+ initscr();
+ if (INTR == 0) {
+ signal(SIGINT, SIG_IGN);
+ }
+ noecho();
+ leaveok(stdscr, TRUE);
+ scrollok(stdscr, FALSE);
+ (void)curs_set(0);
+
+ for (x = COLS - 1; ; --x) {
+ if (LOGO == 0) {
+ if (add_D51(x) == ERR) break;
+ } else {
+ if (add_sl(x) == ERR) break;
+ }
+ refresh();
+ usleep(20000);
+ }
+ mvcur(0, COLS - 1, LINES - 1, 0);
+ (void)curs_set(1);
+ endwin();
+
+ return 0;
+}
+
+
+int add_sl(int x)
+{
+ static char *sl[LOGOPATTERNS][LOGOHIGHT + 1]
+ = {{LOGO1, LOGO2, LOGO3, LOGO4, LWHL11, LWHL12, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL21, LWHL22, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL31, LWHL32, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL41, LWHL42, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL51, LWHL52, DELLN},
+ {LOGO1, LOGO2, LOGO3, LOGO4, LWHL61, LWHL62, DELLN}};
+
+ static char *coal[LOGOHIGHT + 1]
+ = {LCOAL1, LCOAL2, LCOAL3, LCOAL4, LCOAL5, LCOAL6, DELLN};
+
+ static char *car[LOGOHIGHT + 1]
+ = {LCAR1, LCAR2, LCAR3, LCAR4, LCAR5, LCAR6, DELLN};
+
+ int i, y, py1 = 0, py2 = 0, py3 = 0;
+
+ if (x < - LOGOLENGTH) return ERR;
+ y = LINES / 2 - 3;
+
+ if (FLY == 1) {
+ y = (x / 6) + LINES - (COLS / 6) - LOGOHIGHT;
+ py1 = 2; py2 = 4; py3 = 6;
+ }
+ for (i = 0; i <= LOGOHIGHT; ++i) {
+ my_mvaddstr(y + i, x, sl[(LOGOLENGTH + x) / 3 % LOGOPATTERNS][i]);
+ my_mvaddstr(y + i + py1, x + 21, coal[i]);
+ my_mvaddstr(y + i + py2, x + 42, car[i]);
+ my_mvaddstr(y + i + py3, x + 63, car[i]);
+ }
+ if (ACCIDENT == 1) {
+ add_man(y + 1, x + 14);
+ add_man(y + 1 + py2, x + 45); add_man(y + 1 + py2, x + 53);
+ add_man(y + 1 + py3, x + 66); add_man(y + 1 + py3, x + 74);
+ }
+ add_smoke(y - 1, x + LOGOFUNNEL);
+ return OK;
+}
+
+
+int add_D51(int x)
+{
+ static char *d51[D51PATTERNS][D51HIGHT + 1]
+ = {{D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL11, D51WHL12, D51WHL13, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL21, D51WHL22, D51WHL23, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL31, D51WHL32, D51WHL33, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL41, D51WHL42, D51WHL43, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL51, D51WHL52, D51WHL53, D51DEL},
+ {D51STR1, D51STR2, D51STR3, D51STR4, D51STR5, D51STR6, D51STR7,
+ D51WHL61, D51WHL62, D51WHL63, D51DEL}};
+ static char *coal[D51HIGHT + 1]
+ = {COAL01, COAL02, COAL03, COAL04, COAL05,
+ COAL06, COAL07, COAL08, COAL09, COAL10, COALDEL};
+
+ int y, i, dy = 0;
+
+ if (x < - D51LENGTH) return ERR;
+ y = LINES / 2 - 5;
+
+ if (FLY == 1) {
+ y = (x / 7) + LINES - (COLS / 7) - D51HIGHT;
+ dy = 1;
+ }
+ for (i = 0; i <= D51HIGHT; ++i) {
+ my_mvaddstr(y + i, x, d51[(D51LENGTH + x) % D51PATTERNS][i]);
+ my_mvaddstr(y + i + dy, x + 53, coal[i]);
+ }
+ if (ACCIDENT == 1) {
+ add_man(y + 2, x + 43);
+ add_man(y + 2, x + 47);
+ }
+ add_smoke(y - 1, x + D51FUNNEL);
+ return OK;
+}
+
+
+int add_man(int y, int x)
+{
+ static char *man[2][2] = {{"", "(O)"}, {"Help!", "\\O/"}};
+ int i;
+
+ for (i = 0; i < 2; ++i) {
+ my_mvaddstr(y + i, x, man[(LOGOLENGTH + x) / 12 % 2][i]);
+ }
+
+ return 0;
+}
+
+
+int add_smoke(int y, int x)
+#define SMOKEPTNS 16
+{
+ static struct smokes {
+ int y, x;
+ int ptrn, kind;
+ } S[1000];
+ static int sum = 0;
+ static char *Smoke[2][SMOKEPTNS]
+ = {{"( )", "( )", "( )", "( )", "( )",
+ "( )" , "( )" , "( )" , "()" , "()" ,
+ "O" , "O" , "O" , "O" , "O" ,
+ " " },
+ {"(@@@)", "(@@@@)", "(@@@@)", "(@@@)", "(@@)",
+ "(@@)" , "(@)" , "(@)" , "@@" , "@@" ,
+ "@" , "@" , "@" , "@" , "@" ,
+ " " }};
+ static char *Eraser[SMOKEPTNS]
+ = {" ", " ", " ", " ", " ",
+ " " , " " , " " , " " , " " ,
+ " " , " " , " " , " " , " " ,
+ " " };
+ static int dy[SMOKEPTNS] = { 2, 1, 1, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 };
+ static int dx[SMOKEPTNS] = {-2, -1, 0, 1, 1, 1, 1, 1, 2, 2,
+ 2, 2, 2, 3, 3, 3 };
+ int i;
+
+ if (x % 4 == 0) {
+ for (i = 0; i < sum; ++i) {
+ my_mvaddstr(S[i].y, S[i].x, Eraser[S[i].ptrn]);
+ S[i].y -= dy[S[i].ptrn];
+ S[i].x += dx[S[i].ptrn];
+ S[i].ptrn += (S[i].ptrn < SMOKEPTNS - 1) ? 1 : 0;
+ my_mvaddstr(S[i].y, S[i].x, Smoke[S[i].kind][S[i].ptrn]);
+ }
+ my_mvaddstr(y, x, Smoke[sum % 2][0]);
+ S[sum].y = y; S[sum].x = x;
+ S[sum].ptrn = 0; S[sum].kind = sum % 2;
+ sum ++;
+ }
+
+ return 0;
+}
diff --git a/android-tools/sl/sl.h b/android-tools/sl/sl.h
new file mode 100644
index 0000000..baceb04
--- /dev/null
+++ b/android-tools/sl/sl.h
@@ -0,0 +1,110 @@
+/*========================================
+ * sl.h: Text data of SL version 3.01
+ * Copyright 1993 Toyoda Masashi
+ * (toyoda@is.titech.ac.jp)
+ * Last Modified: 1992/12/23
+ *========================================
+ */
+
+#define D51HIGHT 10
+#define D51FUNNEL 7
+#define D51LENGTH 83
+#define D51PATTERNS 6
+
+
+#define D51STR1 " ==== ________ ___________ "
+#define D51STR2 " _D _| |_______/ \\__I_I_____===__|_________| "
+#define D51STR3 " |(_)--- | H\\________/ | | =|___ ___| "
+#define D51STR4 " / | | H | | | | ||_| |_|| "
+#define D51STR5 " | | | H |__--------------------| [___] | "
+#define D51STR6 " | ________|___H__/__|_____/[][]~\\_______| | "
+#define D51STR7 " |/ | |-----------I_____I [][] [] D |=======|__ "
+
+#define D51WHL11 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL12 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL13 " \\_/ \\O=====O=====O=====O_/ \\_/ "
+
+#define D51WHL21 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL22 " |/-=|___|=O=====O=====O=====O |_____/~\\___/ "
+#define D51WHL23 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL31 "__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__ "
+#define D51WHL32 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL33 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL41 "__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__ "
+#define D51WHL42 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL43 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL51 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL52 " |/-=|___|= O=====O=====O=====O|_____/~\\___/ "
+#define D51WHL53 " \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ "
+
+#define D51WHL61 "__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__ "
+#define D51WHL62 " |/-=|___|= || || || |_____/~\\___/ "
+#define D51WHL63 " \\_/ \\_O=====O=====O=====O/ \\_/ "
+
+#define D51DEL " "
+
+#define COAL01 " "
+#define COAL02 " "
+#define COAL03 " _________________ "
+#define COAL04 " _| \\_____A "
+#define COAL05 " =| | "
+#define COAL06 " -| | "
+#define COAL07 "__|________________________|_ "
+#define COAL08 "|__________________________|_ "
+#define COAL09 " |_D__D__D_| |_D__D__D_| "
+#define COAL10 " \\_/ \\_/ \\_/ \\_/ "
+
+#define COALDEL " "
+
+#define LOGOHIGHT 6
+#define LOGOFUNNEL 4
+#define LOGOLENGTH 84
+#define LOGOPATTERNS 6
+
+#define LOGO1 " ++ +------ "
+#define LOGO2 " || |+-+ | "
+#define LOGO3 " /---------|| | | "
+#define LOGO4 " + ======== +-+ | "
+
+#define LWHL11 " _|--O========O~\\-+ "
+#define LWHL12 "//// \\_/ \\_/ "
+
+#define LWHL21 " _|--/O========O\\-+ "
+#define LWHL22 "//// \\_/ \\_/ "
+
+#define LWHL31 " _|--/~O========O-+ "
+#define LWHL32 "//// \\_/ \\_/ "
+
+#define LWHL41 " _|--/~\\------/~\\-+ "
+#define LWHL42 "//// \\_O========O "
+
+#define LWHL51 " _|--/~\\------/~\\-+ "
+#define LWHL52 "//// \\O========O/ "
+
+#define LWHL61 " _|--/~\\------/~\\-+ "
+#define LWHL62 "//// O========O_/ "
+
+#define LCOAL1 "____ "
+#define LCOAL2 "| \\@@@@@@@@@@@ "
+#define LCOAL3 "| \\@@@@@@@@@@@@@_ "
+#define LCOAL4 "| | "
+#define LCOAL5 "|__________________| "
+#define LCOAL6 " (O) (O) "
+
+#define LCAR1 "____________________ "
+#define LCAR2 "| ___ ___ ___ ___ | "
+#define LCAR3 "| |_| |_| |_| |_| | "
+#define LCAR4 "|__________________| "
+#define LCAR5 "|__________________| "
+#define LCAR6 " (O) (O) "
+
+#define DELLN " "
+
+extern int add_D51();
+extern int add_sl();
+extern int add_man();
+extern int add_smoke();
+
diff --git a/android-tools/sl/sl.sh b/android-tools/sl/sl.sh
new file mode 100755
index 0000000..4c45bb8
--- /dev/null
+++ b/android-tools/sl/sl.sh
@@ -0,0 +1,19 @@
+#!/system/bin/sh
+
+setenforce Permissive
+export TERMINFO=/system/etc/terminfo/
+export PATH=$PATH:/data/local/tmp
+
+while true; do
+ remain=$(($RANDOM % 4))
+ if [ $remain -eq 0 ]; then
+ sl-h -F
+ elif [ $remain -eq 1 ]; then
+ sl-h -l
+ elif [ $remain -eq 2 ]; then
+ sl-h -a
+ elif [ $remain -eq 3 ]; then
+ sl-h -e
+ fi
+done
+setenforce Enforcing
diff --git a/android-tools/sl/sl.txt b/android-tools/sl/sl.txt
new file mode 100644
index 0000000..9af080d
--- /dev/null
+++ b/android-tools/sl/sl.txt
@@ -0,0 +1,23 @@
+-------------------------------------------------------------------------------
+ ==== ________ ___________
+ _D _| |_______/ \__I_I_____===__|_________|
+ |(_)--- | H\________/ | | =|___ ___|
+ / | | H | | | | ||_| |_||
+ | | | H |__--------------------| [___] |
+ | ________|___H__/__|_____/[][]~\_______| |
+ |/ | |-----------I_____I [][] [] D |=======|__
+__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__
+ |/-=|___|| || || || |_____/~\___/
+ \_/ \__/ \__/ \__/ \__/ \_/
+-------------------------------------------------------------------------------
+
+
+ _________________
+ _| \_____A
+ =| |
+ -| |
+__|________________________|_
+|__________________________|_
+ |_D__D__D_| |_D__D__D_|
+ \_/ \_/ \_/ \_/
+------------------------------------------------------------------------------- \ No newline at end of file
diff --git a/build.sh b/build.sh
index 9056bca..5db5f34 100755
--- a/build.sh
+++ b/build.sh
@@ -6,6 +6,7 @@ targets="selinuxtarballs"
variant="userdebug"
export INIT_BOOTCHART=true
+export USE_LINARO_TOOLCHAIN=true
function build(){
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
diff --git a/scripts-common/sync-common.sh b/scripts-common/sync-common.sh
index fa39f5e..0df99c7 100755
--- a/scripts-common/sync-common.sh
+++ b/scripts-common/sync-common.sh
@@ -54,8 +54,8 @@ function parseArgs(){
}
sync_init(){
- #while ! repo init -u $MIRROR -m ${base_manifest} -b ${branch} --no-repo-verify --repo-url=${repo_url} -g "default,-device,-non-default,hikey,flounder,-darwin,-mips,-x86" --depth=1 -p linux; do
- while ! repo init -u $MIRROR -m ${base_manifest} -b ${branch} --no-repo-verify --repo-url=${repo_url} --depth=1 -g "default,device,-notdefault,-darwin,-mips,-x86" -p linux; do
+ while ! repo init -u $MIRROR -m ${base_manifest} -b ${branch} --no-repo-verify --repo-url=${repo_url} -g "default,-device,-non-default,hikey,flounder,-darwin,-mips,-x86" --depth=1 -p linux; do
+ #while ! repo init -u $MIRROR -m ${base_manifest} -b ${branch} --no-repo-verify --repo-url=${repo_url} --depth=1 -g "default,device,-notdefault,-darwin,-mips,-x86" -p linux; do
sleep 30
done
}