18 #include <SDL/SDL_mixer.h>
28 #define NUM_CHANNELS 4
34 static void cleanup(
void);
42 static int load_background(
int slot,
char *filename);
43 static void unload_background(
int slot);
46 static void set_background_volume(
int);
49 static void pause_music(
void);
50 static void unpause_music(
void);
53 static int load_wave(
int slot,
char *filename);
54 static void unload_wave(
int slot);
57 static void play_wave(
int channel,
int slot);
58 static void play_background(
int slot);
62 static void fade_in_background(
int slot,
int time);
63 static void fade_out_background(
int time);
66 static void change_background(
int slot,
int time);
68 static bool is_initialized () {
return audio_initialized; }
69 static bool is_schedule_activated () {
return schedule_active; }
70 static bool is_background_finished () {
return !Mix_PlayingMusic (); }
72 static void set_schedule_active (
bool a) { schedule_active = a; }
74 static void set_schedule (
string file, PyObject * args = NULL);
75 static void run_schedule ();
89 static bool schedule_active;
90 static bool audio_initialized;
91 static int background_volume;
92 static int effects_volume;
93 static Mix_Music *music[NUM_MUSIC];
94 static string music_file[NUM_MUSIC];
95 static Mix_Chunk *sounds[NUM_WAVES];
96 static int current_background;
97 static int last_background;
98 static bool background_paused;
99 static int audio_rate;
100 static Uint16 buffer_size;
101 static Uint16 audio_format;
102 static int audio_channels;
104 static PyObject *schedule_args;