diff options
Diffstat (limited to 'src/devices/bus/isa/gus.h')
-rw-r--r-- | src/devices/bus/isa/gus.h | 55 |
1 files changed, 26 insertions, 29 deletions
diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h index be8dbbdbe2d..9f652fd8ccb 100644 --- a/src/devices/bus/isa/gus.h +++ b/src/devices/bus/isa/gus.h @@ -121,11 +121,18 @@ public: void dack_w(int line,uint8_t data); void eop_w(int state); - // optional information overrides - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + // device_sound_interface overrides virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; protected: + // device-level overrides + virtual void device_start() override; + virtual void device_reset() override; + virtual void device_stop() override; + virtual void device_clock_changed() override; + + virtual void update_irq() override; + // voice-specific registers gus_voice m_voice[32]; @@ -147,18 +154,13 @@ protected: void set_irq(uint8_t source, uint8_t voice); void reset_irq(uint8_t source); - void update_volume_ramps(); - - std::vector<uint8_t> m_wave_ram; - - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_stop() override; - virtual void device_clock_changed() override; - virtual void update_irq() override; + TIMER_CALLBACK_MEMBER(adlib_timer1_tick); + TIMER_CALLBACK_MEMBER(adlib_timer2_tick); + TIMER_CALLBACK_MEMBER(dma_tick); + TIMER_CALLBACK_MEMBER(update_volume_ramps); + std::vector<uint8_t> m_wave_ram; private: // internal state sound_stream* m_stream; @@ -199,11 +201,6 @@ private: uint32_t m_dma_current; uint16_t m_volume_table[4096]; - static const device_timer_id ADLIB_TIMER1 = 0; - static const device_timer_id ADLIB_TIMER2 = 1; - static const device_timer_id DMA_TIMER = 2; - static const device_timer_id VOL_RAMP_TIMER = 3; - int m_txirq; int m_rxirq; @@ -256,18 +253,18 @@ protected: virtual ioport_constructor device_input_ports() const override; private: - DECLARE_WRITE_LINE_MEMBER(midi_txirq); - DECLARE_WRITE_LINE_MEMBER(midi_rxirq); - DECLARE_WRITE_LINE_MEMBER(wavetable_irq); - DECLARE_WRITE_LINE_MEMBER(volumeramp_irq); - DECLARE_WRITE_LINE_MEMBER(timer1_irq); - DECLARE_WRITE_LINE_MEMBER(timer2_irq); - DECLARE_WRITE_LINE_MEMBER(sb_irq); - DECLARE_WRITE_LINE_MEMBER(dma_irq); - DECLARE_WRITE_LINE_MEMBER(drq1_w); - DECLARE_WRITE_LINE_MEMBER(drq2_w); - DECLARE_WRITE_LINE_MEMBER(nmi_w); - DECLARE_WRITE_LINE_MEMBER(write_acia_clock); + void midi_txirq(int state); + void midi_rxirq(int state); + void wavetable_irq(int state); + void volumeramp_irq(int state); + void timer1_irq(int state); + void timer2_irq(int state); + void sb_irq(int state); + void dma_irq(int state); + void drq1_w(int state); + void drq2_w(int state); + void nmi_w(int state); + void write_acia_clock(int state); required_device<gf1_device> m_gf1; |