<p>roox has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Wrote my not yet feature complete implementation of Snake.<br><br>Change-Id: Ib146f749b60e5851ba0723546697e09a6a05ae85<br>---<br>M src/target/firmware/apps/snake_game/main.c<br>1 file changed, 267 insertions(+), 37 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/86/19486/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/target/firmware/apps/snake_game/main.c b/src/target/firmware/apps/snake_game/main.c</span><br><span>index 63dba3f..a4e8296 100644</span><br><span>--- a/src/target/firmware/apps/snake_game/main.c</span><br><span>+++ b/src/target/firmware/apps/snake_game/main.c</span><br><span>@@ -25,6 +25,10 @@</span><br><span> #include <string.h></span><br><span> </span><br><span> #include <debug.h></span><br><span style="color: hsl(120, 100%, 40%);">+#define DEBUG 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define KNRM "\x1B[0m"</span><br><span style="color: hsl(120, 100%, 40%);">+#define UNDERLINE "\x1B[4m"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #include <memory.h></span><br><span> #include <delay.h></span><br><span> #include <rffe.h></span><br><span>@@ -44,6 +48,227 @@</span><br><span> #include <fb/framebuffer.h></span><br><span> #include <battery/battery.h></span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+#define BLANK 0</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEAD 1</span><br><span style="color: hsl(120, 100%, 40%);">+#define TAIL 2</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEAD_FOOD 3</span><br><span style="color: hsl(120, 100%, 40%);">+#define FOOD 9</span><br><span style="color: hsl(120, 100%, 40%);">+#define SBODY 20</span><br><span style="color: hsl(120, 100%, 40%);">+/* The numbers above 20 are the distance to the head.</span><br><span style="color: hsl(120, 100%, 40%);">+ * 21 is direly behind the head.</span><br><span style="color: hsl(120, 100%, 40%);">+*/</span><br><span style="color: hsl(120, 100%, 40%);">+#define STDLEN 3</span><br><span style="color: hsl(120, 100%, 40%);">+#define HEIGHT 7</span><br><span style="color: hsl(120, 100%, 40%);">+#define WIDTH 16</span><br><span style="color: hsl(120, 100%, 40%);">+struct position {</span><br><span style="color: hsl(120, 100%, 40%);">+ int x;</span><br><span style="color: hsl(120, 100%, 40%);">+ int y;</span><br><span style="color: hsl(120, 100%, 40%);">+} pos;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+uint8_t field[WIDTH][HEIGHT];</span><br><span style="color: hsl(120, 100%, 40%);">+uint16_t score = 0, lenght = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+enum errors { ALLRIGHT, SNAKE_COL, } err;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void printField();</span><br><span style="color: hsl(120, 100%, 40%);">+void setItem(int, int, int);</span><br><span style="color: hsl(120, 100%, 40%);">+void movepos(char);</span><br><span style="color: hsl(120, 100%, 40%);">+void increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+void setFood() {</span><br><span style="color: hsl(120, 100%, 40%);">+ int x, y, c;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* for (c = 0; c < 10;c++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* x = rand() % (WIDTH -1); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* y = rand() % (HEIGHT -1); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* if (field[x][y] == BLANK) { */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* field[x][y] = FOOD; */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* return; */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* } */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* } */</span><br><span style="color: hsl(120, 100%, 40%);">+ for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (field[x][y] == BLANK) {</span><br><span style="color: hsl(120, 100%, 40%);">+ field[x][y] = FOOD;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (DEBUG > 0) printf("Set without rand (%d|%d) %d\n", x, y, c);</span><br><span style="color: hsl(120, 100%, 40%);">+ return;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void print_snake_str(char *text, int16_t x, int16_t y)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ x = 6 * x;</span><br><span style="color: hsl(120, 100%, 40%);">+ y = 8 * (y+1) -3;</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Put string %s to (%d|%d)\n", text, x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+void movepos(char dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+ setItem(pos.x, pos.y, SBODY);</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'Y': pos.y++;break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'y': pos.y--;break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'X': pos.x++;break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'x': pos.x--;break;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (dim) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'Y': case 'y':</span><br><span style="color: hsl(120, 100%, 40%);">+ if (pos.y == -1) pos.y = HEIGHT -1;</span><br><span style="color: hsl(120, 100%, 40%);">+ else if (pos.y == HEIGHT) pos.y = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case 'X': case 'x':</span><br><span style="color: hsl(120, 100%, 40%);">+ if (pos.x == -1) pos.x = WIDTH -1;</span><br><span style="color: hsl(120, 100%, 40%);">+ else if (pos.x == WIDTH) pos.x = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ increaseBodyAge();</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ setItem(pos.x, pos.y, HEAD);</span><br><span style="color: hsl(120, 100%, 40%);">+ printField();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void increaseBodyAge() {</span><br><span style="color: hsl(120, 100%, 40%);">+ int y, x;</span><br><span style="color: hsl(120, 100%, 40%);">+ lenght = SBODY + STDLEN + score;</span><br><span style="color: hsl(120, 100%, 40%);">+ for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (field[x][y] >= lenght) field[x][y] = BLANK;</span><br><span style="color: hsl(120, 100%, 40%);">+ else if (field[x][y] >= SBODY) field[x][y]++;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void setItem(int x, int y, int item) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (item == HEAD) {</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (field[x][y]) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case FOOD: score++; setFood(); item = HEAD_FOOD; break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case BLANK: break;</span><br><span style="color: hsl(120, 100%, 40%);">+ default: err = SNAKE_COL;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ field[x][y] = item;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void resetField() {</span><br><span style="color: hsl(120, 100%, 40%);">+ /* system("clear"); */</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("\033[H\033[2J");</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void printField() {</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_clear();</span><br><span style="color: hsl(120, 100%, 40%);">+ int x, y;</span><br><span style="color: hsl(120, 100%, 40%);">+ for (y = 0; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (x = 0; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (field[x][y]) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case BLANK:break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case HEAD: print_snake_str("O", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case HEAD_FOOD: print_snake_str("P", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case FOOD: print_snake_str("#", x, y);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ default:</span><br><span style="color: hsl(120, 100%, 40%);">+ if (field[x][y] == lenght) print_snake_str(";", x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ else print_snake_str("o", x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Score: %d\n", score);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(0, framebuffer->height+-9);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_lineto(framebuffer->width-1, framebuffer->cursor_y);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(0, framebuffer->height-1);</span><br><span style="color: hsl(120, 100%, 40%);">+ char text[16];</span><br><span style="color: hsl(120, 100%, 40%);">+ switch (err) {</span><br><span style="color: hsl(120, 100%, 40%);">+ case SNAKE_COL: fb_putstr("The snake ate itself!!!", framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+ err = ALLRIGHT; break;</span><br><span style="color: hsl(120, 100%, 40%);">+ default: sprintf(text, "Score: %u", score);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+ framebuffer->cursor_x = 45;</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr("OsmocomBB", framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (DEBUG > 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Pos X: %d, Y: %d\n", pos.x, pos.y);</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("\n\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ for(y = -1; y < HEIGHT; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for(x = -1; x < WIDTH; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (y == -1 || x == -1) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (x == -1) printf(" %2d: ", y);</span><br><span style="color: hsl(120, 100%, 40%);">+ else if (y == -1) printf(UNDERLINE " %2d" KNRM, x);</span><br><span style="color: hsl(120, 100%, 40%);">+ } else printf(" %2d",field[x][y]);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ puts("\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+int cursor = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+#define NEIGH_LINES ((framebuffer->height +8) / 8)</span><br><span style="color: hsl(120, 100%, 40%);">+static void print_display(char *text, int *y, int c)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ /* skip lines, given by cursor */</span><br><span style="color: hsl(120, 100%, 40%);">+ (*y)++;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (c >= (*y)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Line %d: Return c >= y\n", *y);</span><br><span style="color: hsl(120, 100%, 40%);">+ return;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ /* skip, if end of display area is reached */</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((*y) - c > NEIGH_LINES) {</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Line %d: Return\n", *y);</span><br><span style="color: hsl(120, 100%, 40%);">+ return;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(0, -3 + (((*y) - c - 1) << 3));</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr(text, framebuffer->width);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void fb_clear_fancy(uint8_t delay) {</span><br><span style="color: hsl(120, 100%, 40%);">+ int16_t x, y;</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+ for (x = 0; x < framebuffer->width; x++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (y = 0; y < framebuffer->height; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_set_p(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+ delay_ms(delay);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setbg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+ /* for (x = 0; x < framebuffer->width; x++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+ for (; x >= 0; x--) {</span><br><span style="color: hsl(120, 100%, 40%);">+ for (y = 0; y < framebuffer->height; y++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_set_p(x, y);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+ delay_ms(delay);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+void intro() {</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfg(FB_COLOR_BLACK);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfont(FB_FONT_HELVB14);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(framebuffer->width/2 - 7 * 3, 15);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr("Snake",framebuffer->width-4);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(14, framebuffer->height-5);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_putstr("Version: " GIT_SHORTHASH, framebuffer->width-4);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(0, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_boxto(framebuffer->width - 1, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_boxto(framebuffer->width - 2, framebuffer->height-1);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_boxto(0, framebuffer->height-2);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_boxto(1, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("(%u, %u)\n", framebuffer->width, framebuffer->height);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(2, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_lineto(framebuffer->width-3, framebuffer->height-3);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_gotoxy(2, framebuffer->height-3);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_lineto(framebuffer->width-3, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_flush();</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Main Program */</span><br><span> const char *hr = "======================================================================\n";</span><br><span> </span><br><span>@@ -91,41 +316,36 @@</span><br><span> puts(hr);</span><br><span> </span><br><span> fb_clear();</span><br><span style="color: hsl(0, 100%, 40%);">- bl_level(255);</span><br><span style="color: hsl(120, 100%, 40%);">+ bl_level(255);</span><br><span style="color: hsl(120, 100%, 40%);">+ /* srand(23); // need time or other changing value */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ intro();</span><br><span style="color: hsl(120, 100%, 40%);">+ delay_ms(5000);</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_clear_fancy(20);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> </span><br><span> fb_setfg(FB_COLOR_BLACK);</span><br><span> fb_setbg(FB_COLOR_WHITE);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_setfont(FB_FONT_HELVB14);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- fb_gotoxy(framebuffer->width/2 - 7 * 3, 15);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_putstr("Snake",framebuffer->width-4);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- fb_gotoxy(14, framebuffer->height-5);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_putstr("Version: " GIT_SHORTHASH, framebuffer->width-4);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_gotoxy(0, 0);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_boxto(framebuffer->width - 1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_boxto(framebuffer->width - 2, framebuffer->height-1);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_boxto(0, framebuffer->height-2);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_boxto(1, 1);</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(9,9); */</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(10,10); */</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(10,11); */</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(10,12); */</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(12,10); */</span><br><span style="color: hsl(0, 100%, 40%);">- /* set_pixel_r(0,0); */</span><br><span style="color: hsl(0, 100%, 40%);">- printf("(%u, %u)\n", framebuffer->width, framebuffer->height);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_gotoxy(2, 2);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_lineto(framebuffer->width-3, framebuffer->height-3);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_gotoxy(2, framebuffer->height-3);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_lineto(framebuffer->width-3, 2);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- fb_setfg(FB_COLOR_WHITE);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_setbg(FB_COLOR_BLACK);</span><br><span style="color: hsl(0, 100%, 40%);">- fb_lineto(2, 20);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(120, 100%, 40%);">+ fb_setfont(FB_FONT_HELVR08);</span><br><span style="color: hsl(120, 100%, 40%);">+ int y = 0, i;</span><br><span style="color: hsl(120, 100%, 40%);">+ /* for (i = 1; i <= 7; i++) { */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* printf("%d\n", i); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* print_display("OOOOOOOOOOOOOOOO", &y, cursor - 1); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* } */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* print_snake_str("U",0, 0); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* print_snake_str("U",0, 2); */</span><br><span style="color: hsl(120, 100%, 40%);">+ /* print_snake_str("U",2, 0); */</span><br><span style="color: hsl(120, 100%, 40%);">+ print_snake_str("U",2, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+ print_snake_str("U",2, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+ print_snake_str("U",6, 0);</span><br><span> fb_flush();</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ pos.x = framebuffer->width/(6 * 2);</span><br><span style="color: hsl(120, 100%, 40%);">+ pos.y = framebuffer->height/(8 * 2);</span><br><span style="color: hsl(120, 100%, 40%);">+ setItem(pos.x, pos.y, HEAD);</span><br><span style="color: hsl(120, 100%, 40%);">+ setFood();</span><br><span style="color: hsl(120, 100%, 40%);">+ printf("Put string to (%d|%d)\n", pos.x, pos.y);</span><br><span style="color: hsl(120, 100%, 40%);">+ printField();</span><br><span> </span><br><span> </span><br><span> sercomm_register_rx_cb(SC_DLCI_CONSOLE, console_rx_cb);</span><br><span>@@ -150,13 +370,13 @@</span><br><span> switch (code) {</span><br><span> case KEY_0: bl_level(0);break;</span><br><span> case KEY_1: bl_level(10);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_2: bl_level(20);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_2: movepos('y');break;</span><br><span> case KEY_3: bl_level(30);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_4: bl_level(40);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_4: movepos('x');break;</span><br><span> case KEY_5: bl_level(50);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_6: bl_level(100);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_6: movepos('X');break;</span><br><span> case KEY_7: bl_level(150);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_8: bl_level(200);break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_8: movepos('Y');break;</span><br><span> case KEY_9: bl_level(255);break;</span><br><span> // used to be display_puts...</span><br><span> break;</span><br><span>@@ -166,9 +386,19 @@</span><br><span> case KEY_HASH:</span><br><span> // used to be display puts...</span><br><span> break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_LEFT_SB: bl_mode_pwl(1);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_RIGHT_SB: bl_mode_pwl(0);break;</span><br><span style="color: hsl(0, 100%, 40%);">- case KEY_POWER: twl3025_power_off_now();break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_LEFT_SB:</span><br><span style="color: hsl(120, 100%, 40%);">+ bl_mode_pwl(1);</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_RIGHT_SB:</span><br><span style="color: hsl(120, 100%, 40%);">+ bl_mode_pwl(0);</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_POWER:</span><br><span style="color: hsl(120, 100%, 40%);">+ twl3025_power_off_now();</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_RIGHT: movepos('X'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_LEFT: movepos('x'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_UP: movepos('y'); break;</span><br><span style="color: hsl(120, 100%, 40%);">+ case KEY_DOWN: movepos('Y'); break;</span><br><span> default:</span><br><span> break;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486">change 19486</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmocom-bb/+/19486"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ib146f749b60e5851ba0723546697e09a6a05ae85 </div>
<div style="display:none"> Gerrit-Change-Number: 19486 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: roox <mardnh@gmx.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>