diff --git a/README.md b/README.md index f294273..a64a4fb 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ fanta 2026 Dependencias:
-apt-get install git gcc make libxmp-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
+apt-get install git gcc make libxmp-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev mplayer
 
Clonar: @@ -41,18 +41,22 @@ Y eso es todo amigo/a/e. Si quieres añadir más diapositivas mira en el directo Recuerda que el formato es así:
-slides/slide-000.png;24;97;101;106;250;725;fonts/Daydream DEMO.otf;Tunubesecamirio.com
-slides/slide-001.png;24;84;254;84;10;720;fonts/Daydream DEMO.otf;Hackeja La Terra      En defensa dels territoris
-slides/slide-002.png;20;0;0;168;10;16;fonts/Daydream DEMO.otf;Hackeja La Terra      En defensa dels territoris
-slides/slide-003.png;26;255;255;255;10;720;fonts/Daydream DEMO.otf;Hack The Earth      In defense of territories
-slides/slide-004.png;64;255;0;0;100;100;fonts/Lato-Black.ttf; 
+slides/slide-000.png;24;97;101;106;250;725;fonts/Daydream DEMO.otf;NOVIDEO;Tunubesecamirio.com
+slides/slide-001.png;24;84;254;84;10;720;fonts/Daydream DEMO.otf;dasf;Hackeja La Terra      En defensa dels territoris
+slides/slide-002.png;20;0;0;168;10;16;fonts/Daydream DEMO.otf;NOVIDEO;Hackeja La Terra      En defensa dels territoris
+slides/slide-003.png;26;255;255;255;10;720;fonts/Daydream DEMO.otf;NOVIDEO;Hack The Earth      In defense of territories
+slides/slide-004.png;64;255;0;0;100;100;fonts/Lato-Black.ttf;NOVIDEO;NOTEXT
 
El orden pues de las slides se va configurando en el index.txt.
-ruta del png;tamaño fuente;red;green;blue;x;y;ruta del ttf/otf;texto (puede ponerse un espacio si no se quiere que se vea nada
+ruta del png;tamaño fuente;red;green;blue;x;y;ruta del ttf/otf;ruta de un mp4;texto
 
+si no se indica un mp4 que se reproduzca al inicio de una slide se ha de poner NOVIDEO. +si no se quiere mostrar texto se pone NOTEXT + + Un saludo cordial. diff --git a/docs/TODO.md b/docs/TODO.md index a0dc896..fbb6564 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,4 +1,3 @@ - Añadir opción para abrir en ventana como parametro. -window = SDL_CreateWindow(windowTitle,SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,windowWidth,windowHeight,SDL_WINDOW_OPENGL); - +- Añadir que muestre pantalla negra tras terminar la última slide. que no se vea lo que queda en el doble buffer diff --git a/presentator.c b/presentator.c index 1a6f7aa..ac07350 100644 --- a/presentator.c +++ b/presentator.c @@ -2,8 +2,10 @@ #include #include #include +#include #include #include +#include // Fanta 2026 // Presentator 0.2 @@ -35,7 +37,7 @@ int transition_active = 0; int createWindow(void){ SDL_Init(SDL_INIT_VIDEO); TTF_Init(); - window = SDL_CreateWindow(windowTitle,SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,windowWidth,windowHeight,SDL_WINDOW_FULLSCREEN); + window = SDL_CreateWindow(windowTitle,SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,windowWidth,windowHeight,SDL_WINDOW_BORDERLESS|SDL_WINDOW_FULLSCREEN); render = SDL_CreateRenderer(window, -1, 0); return 0; } @@ -99,6 +101,8 @@ int loadSlide(int nslide){ int slideTextX; int slideTextY; char * slideFont; + char * slideVideo; + fp = fopen(slidesIndex, "r"); while ((read = getline(&line, &len, fp)) != -1) { @@ -106,7 +110,7 @@ int loadSlide(int nslide){ actualSlide = line; char *token = strtok(actualSlide, ";"); int e; - for (e = 0; e < 9; e++) { + for (e = 0; e < 10; e++) { if (e == 0){ slideName = token; } if (e == 1){ slideTextSize = atoi(token); } if (e == 2){ slideTextRed = atoi(token); } @@ -114,23 +118,32 @@ int loadSlide(int nslide){ if (e == 4){ slideTextBlue = atoi(token); } if (e == 5){ slideTextX = atoi(token); } if (e == 6){ slideTextY = atoi(token); } - if (e == 7){ slideFont = token; } - if (e == 8){ slideText = token; slideText[ strlen(slideText) - 1 ] = '\0'; } + if (e == 7){ slideFont = token; } + if (e == 8){ slideVideo = token; } + if (e == 9){ slideText = token; slideText[ strlen(slideText) - 1 ] = '\0'; } token = strtok(NULL, ";"); } SDL_Rect textureSlideRect = { 0, 0, windowWidth, windowHeight }; IMG_Init(IMG_INIT_PNG); - printf("%s %s\n", slideName, slideText); textureSlide = IMG_LoadTexture(render, slideName); SDL_RenderCopy(render, textureSlide, NULL, &textureSlideRect); - TTF_Font* font = TTF_OpenFont(slideFont, slideTextSize); - SDL_Color textColor = {slideTextRed, slideTextGreen, slideTextBlue, 255}; - SDL_Surface *textSurface = TTF_RenderText_Solid(font, slideText, textColor); - SDL_Texture *textTexture = SDL_CreateTextureFromSurface(render, textSurface); - SDL_Rect textRect = {slideTextX, slideTextY, textSurface->w, textSurface->h}; - SDL_RenderCopy(render, textTexture, NULL, &textRect); + if (strcmp(slideText,"NOTEXT") != 0){ + TTF_Font* font = TTF_OpenFont(slideFont, slideTextSize); + SDL_Color textColor = {slideTextRed, slideTextGreen, slideTextBlue, 255}; + SDL_Surface *textSurface = TTF_RenderText_Solid(font, slideText, textColor); + SDL_Texture *textTexture = SDL_CreateTextureFromSurface(render, textSurface); + SDL_Rect textRect = {slideTextX, slideTextY, textSurface->w, textSurface->h}; + SDL_RenderCopy(render, textTexture, NULL, &textRect); + } + + if (strcmp(slideVideo,"NOVIDEO") != 0){ + char slideMplayer[] = "mplayer -really-quiet -fs "; + strcat(slideMplayer, slideVideo); + system(slideMplayer); + } + } nline = nline +1; } @@ -190,6 +203,8 @@ int main(int argc, char ** argv) { + + while (!quit) { SDL_WaitEvent(&evento); diff --git a/slides/enProgramasdeentretenimiento_gastodeagua_de_la_ia.mp4 b/slides/enProgramasdeentretenimiento_gastodeagua_de_la_ia.mp4 new file mode 100644 index 0000000..b4d9318 Binary files /dev/null and b/slides/enProgramasdeentretenimiento_gastodeagua_de_la_ia.mp4 differ diff --git a/slides/index.txt b/slides/index.txt index 7600e47..a225aad 100644 --- a/slides/index.txt +++ b/slides/index.txt @@ -1,5 +1,5 @@ -slides/slide-000.png;24;97;101;106;250;725;fonts/Daydream DEMO.otf;Tunubesecamirio.com -slides/slide-001.png;24;84;254;84;10;720;fonts/Daydream DEMO.otf;Hackeja La Terra En defensa dels territoris -slides/slide-002.png;20;0;0;168;10;16;fonts/Daydream DEMO.otf;Hackeja La Terra En defensa dels territoris -slides/slide-003.png;26;255;255;255;10;720;fonts/Daydream DEMO.otf;Hack The Earth In defense of territories -slides/slide-004.png;64;255;0;0;100;100;fonts/Lato-Black.ttf; +slides/slide-000.png;24;97;101;106;250;725;fonts/Daydream DEMO.otf;NOVIDEO;NOTEXT +slides/slide-001.png;24;84;254;84;10;720;fonts/Daydream DEMO.otf;NOVIDEO;NOTEXT +slides/slide-002.png;20;0;0;168;10;16;fonts/Daydream DEMO.otf;NOVIDEO;NOTEXT +slides/slide-003.png;24;97;101;106;250;725;fonts/Daydream DEMO.otf;NOVIDEO;Tunubesecamirio.com +slides/slide-004.png;64;255;0;0;100;100;fonts/Lato-Black.ttf;NOVIDEO;NOTEXT diff --git a/slides/slide-000.png b/slides/slide-000.png index 7ece6f3..00ad995 100644 Binary files a/slides/slide-000.png and b/slides/slide-000.png differ diff --git a/slides/slide-001.png b/slides/slide-001.png index 00ad995..e5430f8 100644 Binary files a/slides/slide-001.png and b/slides/slide-001.png differ diff --git a/slides/slide-002.png b/slides/slide-002.png index e5430f8..660b7e9 100644 Binary files a/slides/slide-002.png and b/slides/slide-002.png differ diff --git a/slides/slide-003.png b/slides/slide-003.png index 660b7e9..7ece6f3 100644 Binary files a/slides/slide-003.png and b/slides/slide-003.png differ