Subversion Repositories pentevo

Rev

Rev 716 | Blame | Last modification | View Log | Download | RSS feed

  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. };
  69.