#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <SDL/SDL.h>
#include <SDL/SDL_audio.h>
#include <SDL/SDL_mixer.h>

/* P.K. */
#include "macros.h"
#include "types.h"
#include "common.h"

#include "main.h"
#include "options.h"
//? #include "son.h"

/* Variables */
extern Mix_Music *musintro, *muschoix;
extern Mix_Chunk *s_expl, *s_fontaine, *s_rire, *s_mort;
extern Mix_Chunk *s_debut, *s_bouton, *s_teleport, *s_citrouille;
extern Mix_Chunk *s_bonus, *s_grosrire, *s_ecrantit, *s_pouvoir;

int bruitsplus(Mix_Chunk * bouh, int repet)
{
  if (!avecson) return -1;
  if (!bouh) return -1;
  return Mix_PlayChannel(-1, bouh, repet-1);
}


Mix_Chunk * chargeson(char *nom)
{
  char chemin[256];
  Mix_Chunk * bruitage;
  if (!avecson) return NULL;
  sprintf(chemin, "%s/%s", prefixeson, nom);
  bruitage = Mix_LoadWAV(chemin);
  if (!bruitage) errormessage("Impossible de charger le bruitage", nom);
  return bruitage;
}

Mix_Music * chargemus(char *nom)
{
  char chemin[256];
  Mix_Music * musique;
  if (!avecson) return NULL;
  sprintf(chemin, "%s/%s", prefixeson, nom);
  musique =  Mix_LoadMUS(chemin);
  if (!musique) errormessage("Impossible de charger la musique", nom);
  return musique;
}


int chargebruitages(void)
{
  if (!avecson) return 0;
  s_expl = chargeson("expl.wav");
  s_fontaine = chargeson("fontaine.wav");
  s_rire = chargeson("rire.wav");
  s_mort = chargeson("rire.wav");
  s_debut = chargeson("debut.wav");
  //s_pas = chargeson("pas.wav");
  s_bouton = chargeson("bouton.wav");
  s_teleport = chargeson("teleport.wav");
  s_citrouille = chargeson("boing.wav");
  s_bonus = chargeson("bonus.wav");
  s_grosrire = chargeson("grosrire.wav");
  s_ecrantit = chargeson("ecrantit.wav");
  s_pouvoir = chargeson("pouv.wav");
  //  s_fin = chargeson("fin.wav");
  if (avecmusique)
    {
      musintro = chargemus("intro.s3m"); 
      //      muschoix = chargemus("choix.s3m");
    }
  return 0;
}


void initson(void)
{
  if (!avecson) return;
  if ( Mix_OpenAudio(22050, AUDIO_S16, 2, 1024) >= 0 )
    Mix_Volume(-1, MIX_MAX_VOLUME/2);
  else
    printf("Impossible d'initialiser le son : désactivé\n"), avecson=0;
  return;
}
