]> icculus.org git repositories - btb/d2x.git/blob - main/songs.h
portable-izing file loading routines
[btb/d2x.git] / main / songs.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13
14 #ifndef _SONGS_H
15 #define _SONGS_H
16
17 typedef struct song_info {
18         char    filename[16];
19         char    melodic_bank_file[16];
20         char    drum_bank_file[16];
21 } song_info;
22
23 extern song_info Songs[];
24
25 #define SONG_TITLE                              0
26 #ifdef MACINTOSH
27 #define SONG_BRIEFING                   3               // endgame and briefing the same
28 #else
29 #define SONG_BRIEFING                   1
30 #endif
31 #define SONG_ENDLEVEL                   2
32 #define SONG_ENDGAME                    3
33 #define SONG_CREDITS                    4
34 #define SONG_FIRST_LEVEL_SONG   5
35
36
37 #ifdef MACINTOSH
38 #define MAX_NUM_SONGS                   9
39 #define Num_songs                                       9
40 #else
41 #define MAX_NUM_SONGS                   30
42 extern int Num_songs;   //how many MIDI songs
43 #endif
44
45 //whether or not redbook audio should be played
46 extern int Redbook_enabled;
47 extern int Redbook_playing;             // track that is currently playing
48
49 void songs_play_song( int songnum, int repeat );
50 void songs_play_level_song( int levelnum );
51
52 //stop the redbook, so we can read off the CD
53 void songs_stop_redbook(void);
54
55 //stop any songs - midi or redbook - that are currently playing
56 void songs_stop_all(void);
57
58 //this should be called regularly to check for redbook restart
59 void songs_check_redbook_repeat(void);
60
61 #endif