diff options
author | Yongqin Liu <yongqin.liu@linaro.org> | 2015-06-26 14:09:52 +0100 |
---|---|---|
committer | Yongqin Liu <yongqin.liu@linaro.org> | 2015-06-26 14:09:52 +0100 |
commit | 55633d55fa1f4e9a041bbff974579fa537dfa8de (patch) | |
tree | 750fe2e7b121a089b8b2eae469a89bb0cba6c15f | |
parent | a077cf5c3536d3ecc43fce64a15e9ee1d1ffdca3 (diff) | |
parent | fb4a1697ac3d0520b40d3f333292a2074d333d0c (diff) |
Merge branch 'master' of ssh://git.linaro.org/people/yongqin.liu/public/android
-rw-r--r-- | android-tools/Android.mk | 2 | ||||
-rw-r--r-- | android-tools/monkey.sh | 5 | ||||
-rw-r--r-- | android-tools/sl/Android.mk | 49 | ||||
-rw-r--r-- | android-tools/sl/header.h | 15 | ||||
-rw-r--r-- | android-tools/sl/sl-h.c | 752 | ||||
-rw-r--r-- | android-tools/sl/sl-h.h | 237 | ||||
-rw-r--r-- | android-tools/sl/sl.c | 237 | ||||
-rw-r--r-- | android-tools/sl/sl.h | 110 | ||||
-rwxr-xr-x | android-tools/sl/sl.sh | 19 | ||||
-rw-r--r-- | android-tools/sl/sl.txt | 23 | ||||
-rwxr-xr-x | build.sh | 1 | ||||
-rwxr-xr-x | scripts-common/sync-common.sh | 4 |
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 @@ -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 } |