22 #include <SDL_mixer.h>
32 #define NUM_CHANNELS 4
38 static void cleanup(
void);
46 static int load_background(
int slot,
char *filename);
47 static void unload_background(
int slot);
50 static void set_background_volume(
int);
53 static void pause_music(
void);
54 static void unpause_music(
void);
57 static int load_wave(
int slot,
char *filename);
58 static void unload_wave(
int slot);
61 static void play_wave(
int channel,
int slot);
62 static void play_background(
int slot);
66 static void fade_in_background(
int slot,
int time);
67 static void fade_out_background(
int time);
70 static void change_background(
int slot,
int time);
72 static bool is_initialized () {
return audio_initialized; }
73 static bool is_schedule_activated () {
return schedule_active; }
74 static bool is_background_finished () {
return !Mix_PlayingMusic (); }
76 static void set_schedule_active (
bool a) { schedule_active = a; }
78 static void set_schedule (
string file, PyObject * args = NULL);
79 static void run_schedule ();
93 static bool schedule_active;
94 static bool audio_initialized;
95 static int background_volume;
96 static int effects_volume;
97 static Mix_Music *music[NUM_MUSIC];
98 static string music_file[NUM_MUSIC];
99 static Mix_Chunk *sounds[NUM_WAVES];
100 static int current_background;
101 static int last_background;
102 static bool background_paused;
103 static int audio_rate;
104 static Uint16 buffer_size;
105 static Uint16 audio_format;
106 static int audio_channels;
108 static PyObject *schedule_args;