summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGentoo <installgentoo@endianness.com>2021-03-27 09:24:32 +1100
committerGentoo <installgentoo@endianness.com>2021-03-27 09:24:32 +1100
commit53da6966d8fc6efb26e6551e707ac27c7f8e4f5c (patch)
tree5fb23a50c358fab3b089a786a9f31d9e5d5b9b8b
downloadg15player-53da6966d8fc6efb26e6551e707ac27c7f8e4f5c.tar.gz
g15player-53da6966d8fc6efb26e6551e707ac27c7f8e4f5c.tar.bz2
g15player-53da6966d8fc6efb26e6551e707ac27c7f8e4f5c.zip
initial commit
-rw-r--r--Makefile15
-rw-r--r--main.c93
-rw-r--r--notes.txt1
-rw-r--r--splash.wbmpbin0 -> 865 bytes
-rw-r--r--splash.xcfbin0 -> 1919 bytes
5 files changed, 109 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0d5a4b0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,15 @@
+CC=gcc
+CFLAGS=-O3 -march=native -pipe
+
+OBJ = main.o
+LIBS = -lg15daemon_client -lg15render
+
+%.o: %.c $(DEPS) $(HEADERS)
+ $(CC) -c -o $@ $< $(CFLAGS)
+
+g15player: $(OBJ)
+ $(CC) -o $@ $^ $(CFLAGS) $(LIBS)
+
+clean:
+ rm $(OBJ)
+ rm g15player
diff --git a/main.c b/main.c
new file mode 100644
index 0000000..821ac07
--- /dev/null
+++ b/main.c
@@ -0,0 +1,93 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <g15daemon_client.h>
+#include <libg15render.h>
+#include <sys/stat.h> /* struct stat, fchmod (), stat (), S_ISREG, S_ISDIR */
+
+int g15screen_fd;
+
+int main()
+{
+g15canvas *canvas;
+
+if((g15screen_fd = new_g15_screen(G15_G15RBUF))<0)
+ {
+ fprintf(stderr,"Can't connect to G15daemon\n");
+ return -1;
+ }
+
+canvas = (g15canvas *)malloc(sizeof(g15canvas));
+if(canvas != NULL){g15r_initCanvas(canvas);}
+else {fprintf(stderr,"Malloc failed!\n"); return -1;}
+
+g15r_loadWbmpSplash(canvas,"splash.wbmp");
+g15_send(g15screen_fd,(char *)canvas->buffer,G15_BUFFER_LEN);
+sleep(1); //show logo for 1 second
+g15r_clearScreen (canvas, G15_COLOR_WHITE);
+
+/*
+//checkerboard pattern
+int i,j;
+for (j=0;j<G15_LCD_HEIGHT;++j)
+ {
+ if(j % 2 == 0 ){for(i=0;i<G15_LCD_WIDTH;i+=4){g15r_setPixel(canvas,i,j,1);}}
+ else{for(i=2;i<G15_LCD_WIDTH;i+=4){g15r_setPixel(canvas,i,j,1);}}
+ }
+g15_send(g15screen_fd,(char *)canvas->buffer,G15_BUFFER_LEN);
+sleep(1);//sleep for 1 second
+//g15r_clearScreen (canvas, G15_COLOR_WHITE);
+*/
+
+char image[] = "badapple/out0000.wbmp";
+
+struct stat sts;//for stat
+
+int i,j;
+
+//todo: Actual proper for loops
+for (;image[12]!=':';++image[12])
+{
+ for(;image[13]!=':';++image[13])
+ {
+ for (;image[14]!=':';++image[14])
+ {
+ for (i=0;i<9;++i)
+ {
+ if ((stat(image, &sts)) == -1){goto exit;}//exit if file does not exist
+ g15r_loadWbmpSplash(canvas,image);//The splash function is the best option since g15r_drawXBM() doesn't seem to exist anymore
+
+ g15_send(g15screen_fd,(char *)canvas->buffer,G15_BUFFER_LEN);
+ ++image[15];
+ //1 second = 1000000 microseconds
+ //todo: Accurate frame timing. Currently too fast
+ usleep(42666);//~24fps
+ //printf("%s\n",image);
+ }
+ image[15] = '0';
+ }
+ image[14] = '0';
+ }
+image[13]='0';
+}
+
+exit:;
+
+//g15r_clearScreen(canvas, G15_COLOR_WHITE);
+
+//g15r_drawCircle(canvas, G15_LCD_HEIGHT, 0, 30, 100, G15_COLOR_BLACK);
+//g15r_drawBar(canvas, 0, 0, 40, 40, G15_COLOR_BLACK, 1,1,0);
+
+//space for up to 4 lines when TEXT_LARGE, 5 when TEXT_MED and 6 when TEXT_SMALL
+//g15r_renderString(canvas, "Install Gentoo", 0, G15_TEXT_LARGE,0,0);
+
+//g15r_setPixel(canvas,0,0,1);
+//g15r_setPixel(canvas,G15_LCD_WIDTH-1,G15_LCD_HEIGHT-1,1);
+
+//wait for enter keypress to terminate (while(1) burns CPU cycles like no tommorrow)
+//while(getchar() != '\n');
+
+close(g15screen_fd);
+//canvas is freed by g15daemon on close(g15screen_fd) it seems
+return 0;
+}
diff --git a/notes.txt b/notes.txt
new file mode 100644
index 0000000..dc28660
--- /dev/null
+++ b/notes.txt
@@ -0,0 +1 @@
+Due to library crash, g15player needs to be run under valgrind not to crash past ~300 frames displayed
diff --git a/splash.wbmp b/splash.wbmp
new file mode 100644
index 0000000..06e08e2
--- /dev/null
+++ b/splash.wbmp
Binary files differ
diff --git a/splash.xcf b/splash.xcf
new file mode 100644
index 0000000..5c5eb43
--- /dev/null
+++ b/splash.xcf
Binary files differ