summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/gus.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/isa/gus.h')
-rw-r--r--src/devices/bus/isa/gus.h55
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;