X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsound.h;h=a7663e220892d8570522ac442e66c034f5b4d53f;hb=c9cf713e62403a869b31e54eb557e57d71a43400;hp=3bab45b0255c31ea02598dd0f49568e22a346f36;hpb=3d9fd78f863d2bac06e9d4f3144b4401a2c2a08f;p=supertux.git diff --git a/src/sound.h b/src/sound.h index 3bab45b02..a7663e220 100644 --- a/src/sound.h +++ b/src/sound.h @@ -6,42 +6,81 @@ by Bill Kendrick bill@newbreedsoftware.com http://www.newbreedsoftware.com/supertux/ + + April 22, 2000 - March 15, 2004 - April 22, 2000 - July 15, 2002 + Current maintainer: + Duong-Khang NGUYEN */ #ifndef SUPERTUX_SOUND_H #define SUPERTUX_SOUND_H - /*all the sounds we have*/ -#define NUM_SOUNDS 16 +#include "defines.h" /* get YES/NO defines */ + +/* used to reserve some channels for panning effects */ +#define SOUND_RESERVED_CHANNELS 2 /*global variable*/ -int use_sound; +extern bool use_sound; /* handle sound on/off menu and command-line option */ +extern bool use_music; /* handle music on/off menu and command-line option */ +extern bool audio_device; /* != 0: available and initialized */ /* enum of different internal music types */ enum Music_Type { - NO_MUSIC, - LEVEL_MUSIC, - HURRYUP_MUSIC, - HERRING_MUSIC -} current_music; - - -#ifndef NOSOUND - + NO_MUSIC, + LEVEL_MUSIC, + HURRYUP_MUSIC, + HERRING_MUSIC +}; + + +/* panning effects: terrible :-) ! */ +enum Sound_Speaker { + SOUND_LEFT_SPEAKER = 0, + SOUND_RIGHT_SPEAKER = 1, + SOUND_CENTER_SPEAKER = -1 +}; + +/* Sound files: */ +enum { + SND_JUMP, + SND_BIGJUMP, + SND_SKID, + SND_DISTRO, + SND_HERRING, + SND_BRICK, + SND_HURT, + SND_SQUISH, + SND_FALL, + SND_RICOCHET, + SND_BUMP_UPGRADE, + SND_UPGRADE, + SND_EXCELLENT, + SND_COFFEE, + SND_SHOOT, + SND_LIFEUP, + SND_STOMP, + SND_KICK, + NUM_SOUNDS +}; + +extern char* soundfilenames[NUM_SOUNDS]; + +#include #include /* variables for stocking the sound and music */ -Mix_Chunk* sounds[NUM_SOUNDS]; -Mix_Music* level_song, *herring_song; +extern Mix_Chunk * sounds[NUM_SOUNDS]; +extern Mix_Music * level_song, * level_song_fast, * herring_song; /* functions handling the sound and music */ int open_audio(int frequency, Uint16 format, int channels, int chunksize); +void close_audio( void ); -Mix_Chunk * load_sound(char * file); -void play_sound(Mix_Chunk * snd); -Mix_Music * load_song(char * file); +Mix_Chunk * load_sound(const std::string& file); +void play_sound(Mix_Chunk * snd, enum Sound_Speaker whichSpeaker); +Mix_Music * load_song(const std::string& file); int playing_music(void); int halt_music(void); @@ -49,25 +88,8 @@ int play_music(Mix_Music*music, int loops); void free_music(Mix_Music*music); void free_chunk(Mix_Chunk*chunk); -#else - -//fake variables -void* sounds[NUM_SOUNDS]; -void* level_song, *herring_song; - -// fake sound handlers -int open_audio (int frequency, int format, int channels, int chunksize); - -void* load_sound(void* file); -void play_sound(void * snd); -void* load_song(void* file); - -int playing_music(); -void halt_music(); -int play_music(void *music, int loops); -void free_music(void *music);; -void free_chunk(void *chunk); - -#endif +int get_current_music(); +void set_current_music(int music); +void play_current_music(); #endif /*SUPERTUX_SOUND_H*/