Mercurial > audlegacy
diff Plugins/Input/adplug/core/rix.h @ 637:2b06eb5e472d trunk
[svn] Sync with upstream. Drop hardware OPL2/3 support, it throws warnings and is not used on most modern machines. Added var inits where GCC 4.0 thought it was a good idea.
author | chainsaw |
---|---|
date | Sat, 18 Feb 2006 08:23:30 -0800 |
parents | 15ca2ea93a30 |
children | 8b24c71b91df |
line wrap: on
line diff
--- a/Plugins/Input/adplug/core/rix.h Thu Feb 16 07:40:35 2006 -0800 +++ b/Plugins/Input/adplug/core/rix.h Sat Feb 18 08:23:30 2006 -0800 @@ -1,6 +1,6 @@ /* * Adplug - Replayer for many OPL2/OPL3 audio file formats. - * Copyright (C) 1999 - 2005 Simon Peter, <dn.tlp@gmx.net>, et al. + * Copyright (C) 1999 - 2006 Simon Peter, <dn.tlp@gmx.net>, et al. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,108 +23,97 @@ class CrixPlayer: public CPlayer { -public: + public: static CPlayer *factory(Copl *newopl); - CrixPlayer(Copl *newopl) - : CPlayer(newopl),I(0),T(0),mus_block(0),ins_block(0),rhythm(0),mutex(0),music_on(0), - pause_flag(0),band(0),band_low(0),e0_reg_flag(0),bd_modify(0),sustain(0),dro_end(0) - { - // memset(buffer,0,97948); - int i=0,j=i*3; - unsigned long t=9; + CrixPlayer(Copl *newopl); + ~CrixPlayer() {}; + + bool load(const std::string &filename, const CFileProvider &fp); + bool update(); + void rewind(int subsong); + float getrefresh(); - if(opl->gettype() == Copl::TYPE_OPL2) - opl3_mode = 0; - else - opl3_mode = 1; - }; - ~CrixPlayer() - {}; + std::string gettype() + { return std::string("Softstar RIX OPL Music Format"); }; - bool load(const std::string &filename, const CFileProvider &fp); - bool update(); - void rewind(int subsong); - float getrefresh(); + protected: + typedef struct { + unsigned char v[14]; + } ADDT; - std::string gettype() - { return std::string("Softstar RIX OPL Music Format"); }; - - typedef struct {unsigned char v[14];}ADDT; - -protected: - unsigned char dro[64000]; - unsigned char buf_addr[655360]; /* rix files' buffer */ - unsigned short buffer[300]; - unsigned short a0b0_data2[11]; - unsigned char a0b0_data3[18]; - unsigned char a0b0_data4[18]; - unsigned char a0b0_data5[96]; - unsigned char addrs_head[96]; - unsigned short insbuf[28]; - unsigned short displace[11]; - ADDT reg_bufs[18]; - unsigned long pos,length; - unsigned long msdone,mstotal; - unsigned short delay; - unsigned char index, opl3_mode; - enum OplMode { - ModeOPL2,ModeOPL3,ModeDUALOPL2 - } mode; + unsigned char dro[64000]; + unsigned char buf_addr[655360]; /* rix files' buffer */ + unsigned short buffer[300]; + unsigned short a0b0_data2[11]; + unsigned char a0b0_data3[18]; + unsigned char a0b0_data4[18]; + unsigned char a0b0_data5[96]; + unsigned char addrs_head[96]; + unsigned short insbuf[28]; + unsigned short displace[11]; + ADDT reg_bufs[18]; + unsigned long pos,length; + unsigned long msdone,mstotal; + unsigned short delay; + unsigned char index, opl3_mode; + enum OplMode { + ModeOPL2,ModeOPL3,ModeDUALOPL2 + } mode; - static const unsigned char adflag[18]; - static const unsigned char reg_data[18]; - static const unsigned char ad_C0_offs[18]; - static const unsigned char modify[28]; - static const unsigned char bd_reg_data[124]; - static unsigned char for40reg[18]; - static unsigned short mus_time; - unsigned int I,T; - unsigned short mus_block; - unsigned short ins_block; - unsigned char rhythm; - unsigned char mutex; - unsigned char music_on; - unsigned char pause_flag; - unsigned short band; - unsigned char band_low; - unsigned short e0_reg_flag; - unsigned char bd_modify; - int sustain; - int dro_end; + static const unsigned char adflag[18]; + static const unsigned char reg_data[18]; + static const unsigned char ad_C0_offs[18]; + static const unsigned char modify[28]; + static const unsigned char bd_reg_data[124]; + static unsigned char for40reg[18]; + static unsigned short mus_time; + unsigned int I,T; + unsigned short mus_block; + unsigned short ins_block; + unsigned char rhythm; + unsigned char mutex; + unsigned char music_on; + unsigned char pause_flag; + unsigned short band; + unsigned char band_low; + unsigned short e0_reg_flag; + unsigned char bd_modify; + int sustain; + int dro_end; - #define ad_08_reg() ad_bop(8,0) /**/ - inline void ad_20_reg(unsigned short); /**/ - inline void ad_40_reg(unsigned short); /**/ - inline void ad_60_reg(unsigned short); /**/ - inline void ad_80_reg(unsigned short); /**/ - inline void ad_a0b0_reg(unsigned short); /**/ - inline void ad_a0b0l_reg(unsigned short,unsigned short,unsigned short); /**/ - inline void ad_a0b0l_reg_(unsigned short,unsigned short,unsigned short); /**/ - inline void ad_bd_reg(); /**/ - inline void ad_bop(unsigned short,unsigned short); /**/ - inline void ad_C0_reg(unsigned short); /**/ - inline void ad_E0_reg(unsigned short); /**/ - inline unsigned short ad_initial(); /**/ - inline unsigned short ad_test(); /**/ - inline void crc_trans(unsigned short,unsigned short); /**/ - inline void data_initial(); /* done */ - inline void init(); /**/ - inline void ins_to_reg(unsigned short,unsigned short*,unsigned short); /**/ - inline void int_08h_entry(); /**/ - inline void music_ctrl(); /**/ - inline void Pause(); /**/ - inline void prep_int(); /**/ - inline void prepare_a0b0(unsigned short,unsigned short); /**/ - inline void rix_90_pro(unsigned short); /**/ - inline void rix_A0_pro(unsigned short,unsigned short); /**/ - inline void rix_B0_pro(unsigned short,unsigned short); /**/ - inline void rix_C0_pro(unsigned short,unsigned short); /**/ - inline void rix_get_ins(); /**/ - inline unsigned short rix_proc(); /**/ - inline void set_new_int(); - inline void set_speed(unsigned short); /**/ - inline void set_time(unsigned short); /**/ - inline void switch_ad_bd(unsigned short); /**/ - inline unsigned int strm_and_fr(unsigned short); /* done */ +#define ad_08_reg() ad_bop(8,0) /**/ + inline void ad_20_reg(unsigned short); /**/ + inline void ad_40_reg(unsigned short); /**/ + inline void ad_60_reg(unsigned short); /**/ + inline void ad_80_reg(unsigned short); /**/ + inline void ad_a0b0_reg(unsigned short); /**/ + inline void ad_a0b0l_reg(unsigned short,unsigned short,unsigned short); /**/ + inline void ad_a0b0l_reg_(unsigned short,unsigned short,unsigned short); /**/ + inline void ad_bd_reg(); /**/ + inline void ad_bop(unsigned short,unsigned short); /**/ + inline void ad_C0_reg(unsigned short); /**/ + inline void ad_E0_reg(unsigned short); /**/ + inline unsigned short ad_initial(); /**/ + inline unsigned short ad_test(); /**/ + inline void crc_trans(unsigned short,unsigned short); /**/ + inline void data_initial(); /* done */ + inline void init(); /**/ + inline void ins_to_reg(unsigned short,unsigned short*,unsigned short); /**/ + inline void int_08h_entry(); /**/ + inline void music_ctrl(); /**/ + inline void Pause(); /**/ + inline void prep_int(); /**/ + inline void prepare_a0b0(unsigned short,unsigned short); /**/ + inline void rix_90_pro(unsigned short); /**/ + inline void rix_A0_pro(unsigned short,unsigned short); /**/ + inline void rix_B0_pro(unsigned short,unsigned short); /**/ + inline void rix_C0_pro(unsigned short,unsigned short); /**/ + inline void rix_get_ins(); /**/ + inline unsigned short rix_proc(); /**/ + inline void set_new_int(); + inline void set_speed(unsigned short); /**/ + inline void set_time(unsigned short); /**/ + inline void switch_ad_bd(unsigned short); /**/ + inline unsigned int strm_and_fr(unsigned short); /* done */ };