Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
716 | lvd | 1 | #pragma once |
2 | |||
3 | struct GSHLE |
||
4 | { |
||
5 | unsigned char gsstat;// command and data bits |
||
6 | unsigned char gscmd; |
||
7 | unsigned char busy; // don't play fx |
||
8 | unsigned char mod_playing; |
||
9 | |||
10 | unsigned modvol, fxvol; // module and FX master volumes |
||
11 | unsigned used; // used memory |
||
12 | unsigned char *mod; unsigned modsize; // for modplayer |
||
13 | unsigned total_fx; // samples loaded |
||
14 | unsigned cur_fx; // selected sample |
||
15 | |||
16 | unsigned char data_in[8];// data register |
||
17 | unsigned char gstmp[8], *resptr; unsigned resmode; // from GS |
||
18 | unsigned char *to_ptr; unsigned resmod2; // to GS |
||
19 | |||
20 | unsigned char *streamstart; unsigned streamsize; |
||
21 | unsigned char load_stream; |
||
22 | |||
23 | unsigned char loadmod, loadfx; // leds flags |
||
24 | |||
25 | unsigned char badgs[0x100]; // unrecognized commands |
||
26 | unsigned note2rate[0x100]; |
||
27 | |||
28 | struct SAMPLE { |
||
29 | unsigned char *start; |
||
30 | unsigned loop, end; |
||
31 | unsigned char volume, note; |
||
32 | } sample[64]; |
||
33 | |||
34 | struct CHANNEL { |
||
35 | unsigned char *start; |
||
36 | unsigned loop, end, ptr; |
||
37 | unsigned volume, freq; |
||
38 | HSTREAM bass_ch; |
||
39 | unsigned char busy; |
||
40 | } chan[4]; |
||
41 | |||
42 | unsigned char in(unsigned char port); |
||
43 | void out(unsigned char port, unsigned char byte); |
||
44 | void reset(); |
||
45 | void reset_sound(); |
||
46 | void applyconfig(); |
||
47 | |||
48 | void set_busy(unsigned char newval); |
||
49 | void start_fx(unsigned fx, unsigned chan, unsigned char vol, unsigned char note); |
||
50 | void flush_gs_frame(); // calc volume values for leds |
||
51 | |||
52 | HMUSIC hmod; |
||
53 | |||
54 | void runBASS(); |
||
55 | void initChannels(); |
||
56 | void setmodvol(unsigned vol); |
||
57 | void init_mod(); |
||
58 | void restart_mod(unsigned order, unsigned row); |
||
59 | void startfx(CHANNEL *ch, float pan); |
||
60 | void resetmod(); |
||
61 | void resetfx(); |
||
62 | DWORD modgetpos(); |
||
63 | void stop_mod(); |
||
64 | void cont_mod(); |
||
65 | void debug_note(unsigned i); |
||
66 | |||
67 | void reportError(const char *err, bool fatal = false); |
||
68 | }; |