|
|
|
@ -2,8 +2,10 @@
|
|
|
|
#include <xmp.h>
|
|
|
|
#include <xmp.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <SDL_image.h>
|
|
|
|
#include <SDL_image.h>
|
|
|
|
#include <SDL_ttf.h>
|
|
|
|
#include <SDL_ttf.h>
|
|
|
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
|
|
|
|
// Fanta <fanta@56k.es> 2026
|
|
|
|
// Fanta <fanta@56k.es> 2026
|
|
|
|
// Presentator 0.2
|
|
|
|
// Presentator 0.2
|
|
|
|
@ -35,7 +37,7 @@ int transition_active = 0;
|
|
|
|
int createWindow(void){
|
|
|
|
int createWindow(void){
|
|
|
|
SDL_Init(SDL_INIT_VIDEO);
|
|
|
|
SDL_Init(SDL_INIT_VIDEO);
|
|
|
|
TTF_Init();
|
|
|
|
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);
|
|
|
|
render = SDL_CreateRenderer(window, -1, 0);
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -99,6 +101,8 @@ int loadSlide(int nslide){
|
|
|
|
int slideTextX;
|
|
|
|
int slideTextX;
|
|
|
|
int slideTextY;
|
|
|
|
int slideTextY;
|
|
|
|
char * slideFont;
|
|
|
|
char * slideFont;
|
|
|
|
|
|
|
|
char * slideVideo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fp = fopen(slidesIndex, "r");
|
|
|
|
fp = fopen(slidesIndex, "r");
|
|
|
|
while ((read = getline(&line, &len, fp)) != -1) {
|
|
|
|
while ((read = getline(&line, &len, fp)) != -1) {
|
|
|
|
@ -106,7 +110,7 @@ int loadSlide(int nslide){
|
|
|
|
actualSlide = line;
|
|
|
|
actualSlide = line;
|
|
|
|
char *token = strtok(actualSlide, ";");
|
|
|
|
char *token = strtok(actualSlide, ";");
|
|
|
|
int e;
|
|
|
|
int e;
|
|
|
|
for (e = 0; e < 9; e++) {
|
|
|
|
for (e = 0; e < 10; e++) {
|
|
|
|
if (e == 0){ slideName = token; }
|
|
|
|
if (e == 0){ slideName = token; }
|
|
|
|
if (e == 1){ slideTextSize = atoi(token); }
|
|
|
|
if (e == 1){ slideTextSize = atoi(token); }
|
|
|
|
if (e == 2){ slideTextRed = atoi(token); }
|
|
|
|
if (e == 2){ slideTextRed = atoi(token); }
|
|
|
|
@ -115,16 +119,17 @@ int loadSlide(int nslide){
|
|
|
|
if (e == 5){ slideTextX = atoi(token); }
|
|
|
|
if (e == 5){ slideTextX = atoi(token); }
|
|
|
|
if (e == 6){ slideTextY = atoi(token); }
|
|
|
|
if (e == 6){ slideTextY = atoi(token); }
|
|
|
|
if (e == 7){ slideFont = token; }
|
|
|
|
if (e == 7){ slideFont = token; }
|
|
|
|
if (e == 8){ slideText = token; slideText[ strlen(slideText) - 1 ] = '\0'; }
|
|
|
|
if (e == 8){ slideVideo = token; }
|
|
|
|
|
|
|
|
if (e == 9){ slideText = token; slideText[ strlen(slideText) - 1 ] = '\0'; }
|
|
|
|
token = strtok(NULL, ";");
|
|
|
|
token = strtok(NULL, ";");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SDL_Rect textureSlideRect = { 0, 0, windowWidth, windowHeight };
|
|
|
|
SDL_Rect textureSlideRect = { 0, 0, windowWidth, windowHeight };
|
|
|
|
IMG_Init(IMG_INIT_PNG);
|
|
|
|
IMG_Init(IMG_INIT_PNG);
|
|
|
|
printf("%s %s\n", slideName, slideText);
|
|
|
|
|
|
|
|
textureSlide = IMG_LoadTexture(render, slideName);
|
|
|
|
textureSlide = IMG_LoadTexture(render, slideName);
|
|
|
|
SDL_RenderCopy(render, textureSlide, NULL, &textureSlideRect);
|
|
|
|
SDL_RenderCopy(render, textureSlide, NULL, &textureSlideRect);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (strcmp(slideText,"NOTEXT") != 0){
|
|
|
|
TTF_Font* font = TTF_OpenFont(slideFont, slideTextSize);
|
|
|
|
TTF_Font* font = TTF_OpenFont(slideFont, slideTextSize);
|
|
|
|
SDL_Color textColor = {slideTextRed, slideTextGreen, slideTextBlue, 255};
|
|
|
|
SDL_Color textColor = {slideTextRed, slideTextGreen, slideTextBlue, 255};
|
|
|
|
SDL_Surface *textSurface = TTF_RenderText_Solid(font, slideText, textColor);
|
|
|
|
SDL_Surface *textSurface = TTF_RenderText_Solid(font, slideText, textColor);
|
|
|
|
@ -132,6 +137,14 @@ int loadSlide(int nslide){
|
|
|
|
SDL_Rect textRect = {slideTextX, slideTextY, textSurface->w, textSurface->h};
|
|
|
|
SDL_Rect textRect = {slideTextX, slideTextY, textSurface->w, textSurface->h};
|
|
|
|
SDL_RenderCopy(render, textTexture, NULL, &textRect);
|
|
|
|
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;
|
|
|
|
nline = nline +1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fclose(fp);
|
|
|
|
fclose(fp);
|
|
|
|
@ -190,6 +203,8 @@ int main(int argc, char ** argv) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (!quit) {
|
|
|
|
while (!quit) {
|
|
|
|
SDL_WaitEvent(&evento);
|
|
|
|
SDL_WaitEvent(&evento);
|
|
|
|
|
|
|
|
|
|
|
|
|