diff --git a/README.md b/README.md index 567f9ac..de7e33e 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
+apt-get install git gcc make libxmp-dev libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev
 
Clonar: diff --git a/fonts/Daydream DEMO.otf b/fonts/Daydream DEMO.otf new file mode 100644 index 0000000..7b938ac Binary files /dev/null and b/fonts/Daydream DEMO.otf differ diff --git a/fonts/Lato-Black.ttf b/fonts/Lato-Black.ttf new file mode 100644 index 0000000..4340502 Binary files /dev/null and b/fonts/Lato-Black.ttf differ diff --git a/fonts/Lato-BlackItalic.ttf b/fonts/Lato-BlackItalic.ttf new file mode 100644 index 0000000..4df1555 Binary files /dev/null and b/fonts/Lato-BlackItalic.ttf differ diff --git a/fonts/Lato-Bold.ttf b/fonts/Lato-Bold.ttf new file mode 100644 index 0000000..016068b Binary files /dev/null and b/fonts/Lato-Bold.ttf differ diff --git a/fonts/Lato-BoldItalic.ttf b/fonts/Lato-BoldItalic.ttf new file mode 100644 index 0000000..a05d503 Binary files /dev/null and b/fonts/Lato-BoldItalic.ttf differ diff --git a/fonts/Lato-Italic.ttf b/fonts/Lato-Italic.ttf new file mode 100644 index 0000000..0d0f69e Binary files /dev/null and b/fonts/Lato-Italic.ttf differ diff --git a/fonts/Lato-Light.ttf b/fonts/Lato-Light.ttf new file mode 100644 index 0000000..dfa72ce Binary files /dev/null and b/fonts/Lato-Light.ttf differ diff --git a/fonts/Lato-LightItalic.ttf b/fonts/Lato-LightItalic.ttf new file mode 100644 index 0000000..12f2b6c Binary files /dev/null and b/fonts/Lato-LightItalic.ttf differ diff --git a/fonts/Lato-Regular.ttf b/fonts/Lato-Regular.ttf new file mode 100644 index 0000000..bb2e887 Binary files /dev/null and b/fonts/Lato-Regular.ttf differ diff --git a/fonts/Lato-Thin.ttf b/fonts/Lato-Thin.ttf new file mode 100644 index 0000000..ba58da1 Binary files /dev/null and b/fonts/Lato-Thin.ttf differ diff --git a/fonts/Lato-ThinItalic.ttf b/fonts/Lato-ThinItalic.ttf new file mode 100644 index 0000000..4d82766 Binary files /dev/null and b/fonts/Lato-ThinItalic.ttf differ diff --git a/fonts/cantarellBold.ttf b/fonts/cantarellBold.ttf new file mode 100755 index 0000000..a4fe14e Binary files /dev/null and b/fonts/cantarellBold.ttf differ diff --git a/makefile b/makefile index b2da6de..76d1eb3 100644 --- a/makefile +++ b/makefile @@ -1,6 +1,6 @@ CC := gcc CFLAGS := -Wall -LINKER_FLAGS = `sdl2-config --cflags --libs` -lxmp -lSDL2_image +LINKER_FLAGS = `sdl2-config --cflags --libs` -lxmp -lSDL2_image -lSDL2_ttf test: make clean diff --git a/presentator.c b/presentator.c index 9b5be43..1a6f7aa 100644 --- a/presentator.c +++ b/presentator.c @@ -2,9 +2,8 @@ #include #include #include -#include -#include #include +#include // Fanta 2026 // Presentator 0.2 @@ -35,6 +34,7 @@ int transition_active = 0; // Functions 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); render = SDL_CreateRenderer(window, -1, 0); return 0; @@ -90,50 +90,82 @@ int loadSlide(int nslide){ size_t len = 0; int nline = 1; ssize_t read; - int slideType; + char * slideText; char * slideName; - + int slideTextSize; + int slideTextRed; + int slideTextGreen; + int slideTextBlue; + int slideTextX; + int slideTextY; + char * slideFont; + fp = fopen(slidesIndex, "r"); while ((read = getline(&line, &len, fp)) != -1) { if (nslide == nline){ actualSlide = line; char *token = strtok(actualSlide, ";"); int e; - for (e = 0; e < 2; e++) { - if (e == 0){ slideType = atoi(token); } - if (e == 1){ slideName = token; slideName[ strlen(slideName) - 1 ] = '\0';} + for (e = 0; e < 9; e++) { + if (e == 0){ slideName = token; } + if (e == 1){ slideTextSize = atoi(token); } + if (e == 2){ slideTextRed = atoi(token); } + if (e == 3){ slideTextGreen = atoi(token); } + 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'; } token = strtok(NULL, ";"); } - printf("%i %s\n", slideType, slideName); - - actualSlide[ strlen(actualSlide) - 1 ] = '\0'; + SDL_Rect textureSlideRect = { 0, 0, windowWidth, windowHeight }; IMG_Init(IMG_INIT_PNG); - if (slideType == 0){ textureSlide = IMG_LoadTexture(render, slideName); } // png - if (slideType == 1){ textureSlide = IMG_LoadTexture(render, slideName); } // gif incompleto ahora mismo pero ya detectado + 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); } nline = nline +1; } fclose(fp); nline = nline - 1; if (line){ free(line); }; + return 0; } int transition_BackToBlack(void){ SDL_SetRenderDrawBlendMode(render, SDL_BLENDMODE_BLEND); SDL_Rect barra = { 0, 0, windowWidth, windowHeight }; - int z; for (z = 250; z > 0; z = z -10) { - loadSlide(actualNSlide); - refreshVolumeArea(iv); + loadSlide(actualNSlide); + refreshVolumeArea(iv); SDL_SetRenderDrawColor(render, 0, 0, 0, z); SDL_RenderFillRect(render, &barra); SDL_RenderPresent(render); } - + return 0; +} + +int effect_enableTransition(void){ // red blink on the volume area box + SDL_SetRenderDrawBlendMode(render, SDL_BLENDMODE_BLEND); + int z; + for (z = 250; z > 0; z = z -10) { + loadSlide(actualNSlide); + refreshVolumeArea(iv); + SDL_Rect barra = { 913, 24, 94, 12 }; + SDL_SetRenderDrawColor(render, 255, 0, 0, z); + SDL_RenderFillRect(render, &barra); + SDL_RenderPresent(render); + } return 0; } @@ -158,7 +190,6 @@ int main(int argc, char ** argv) { - while (!quit) { SDL_WaitEvent(&evento); @@ -234,9 +265,11 @@ int main(int argc, char ** argv) { case SDLK_F1: if (transition_active == 0){ transition_active = 1; + effect_enableTransition(); }else{ transition_active = 0; - } + effect_enableTransition(); + }; break; } break; diff --git a/slides/index.txt b/slides/index.txt index fa96578..7600e47 100644 --- a/slides/index.txt +++ b/slides/index.txt @@ -1,5 +1,5 @@ -0;slides/slide-001.png -0;slides/slide-002.png -0;slides/slide-003.png -0;slides/slide-004.png -1;slides/slide-005.gif +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; diff --git a/slides/slide-000.png b/slides/slide-000.png new file mode 100644 index 0000000..7ece6f3 Binary files /dev/null and b/slides/slide-000.png differ diff --git a/slides/slide-001.png b/slides/slide-001.png index bb3c249..00ad995 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 7519ab3..e5430f8 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 7cb693a..660b7e9 100644 Binary files a/slides/slide-003.png and b/slides/slide-003.png differ diff --git a/slides/slide-004.png b/slides/slide-004.png index d96c5d4..bb3c249 100644 Binary files a/slides/slide-004.png and b/slides/slide-004.png differ diff --git a/slides/slide-005.gif b/slides/slide-005.gif deleted file mode 100644 index 6678792..0000000 Binary files a/slides/slide-005.gif and /dev/null differ diff --git a/slides/slide-005.png b/slides/slide-005.png new file mode 100644 index 0000000..7519ab3 Binary files /dev/null and b/slides/slide-005.png differ diff --git a/slides/slide-006.png b/slides/slide-006.png new file mode 100644 index 0000000..7cb693a Binary files /dev/null and b/slides/slide-006.png differ diff --git a/slides/slide-007.png b/slides/slide-007.png new file mode 100644 index 0000000..d96c5d4 Binary files /dev/null and b/slides/slide-007.png differ