1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int continuer = 1;
int o = 0;
int p = 0;
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *ecran = NULL;
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_Event event;
SDL_WM_SetCaption("SDL_Mixer", NULL);
SDL_Flip(ecran);
if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 1024) == -1) //Initialisation de l'API Mixer
{
printf("%s", Mix_GetError());
}
Mix_AllocateChannels(32); //Allouer 32 canaux
Mix_Volume(1, MIX_MAX_VOLUME/2); //Mettre à mi-volume le post
Mix_Chunk *kick = Mix_LoadWAV("bd01.wav"); //Charger un wav dans un pointeur
Mix_Chunk *snare = Mix_LoadWAV("snare.wav");
Mix_VolumeChunk(kick, MIX_MAX_VOLUME/2); //Mettre un volume pour ce wav
//Mix_VolumeChunk(snare, MIX_MAX_VOLUME);
while(continuer)
{
SDL_WaitEvent(&event);
switch(event.type)
{
case SDL_QUIT:
continuer = 0;
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_a:
Mix_PlayChannel(1, kick, 0);//Joue le son 1 sur le canal 1 ; le joue une fois (0 + 1)
break;
case SDLK_z:
Mix_PlayChannel(2, snare, 0);//Joue le son 2 sur le canal 2 ; le joue 3 fois (2 + 1)
break;
}
break;
}
}
Mix_FreeChunk(kick);//Libération du son 1
Mix_FreeChunk(snare);
Mix_CloseAudio(); //Fermeture de l'API
SDL_Quit();
return EXIT_SUCCESS;
} |
Partager