diff options
Diffstat (limited to 'src/mame/audio/elan_eu3a05.h')
-rw-r--r-- | src/mame/audio/elan_eu3a05.h | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/mame/audio/elan_eu3a05.h b/src/mame/audio/elan_eu3a05.h index e56f8cdc166..867998051be 100644 --- a/src/mame/audio/elan_eu3a05.h +++ b/src/mame/audio/elan_eu3a05.h @@ -18,16 +18,11 @@ public: auto space_read_callback() { return m_space_read_cb.bind(); } - DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_addr_w); - DECLARE_READ8_MEMBER(elan_eu3a05_sound_addr_r); - DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_size_w); - DECLARE_READ8_MEMBER(elan_eu3a05_sound_size_r); - DECLARE_READ8_MEMBER(elan_eu3a05_sound_trigger_r); - DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_trigger_w); - DECLARE_READ8_MEMBER(elan_eu3a05_sound_unk_r); - DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_unk_w); + template <unsigned N> auto sound_end_cb() { return m_sound_end_cb[N].bind(); } + + DECLARE_WRITE8_MEMBER(write); + DECLARE_READ8_MEMBER(read); - DECLARE_READ8_MEMBER(elan_eu3a05_50a8_r); protected: // device-level overrides virtual void device_start() override; @@ -49,12 +44,32 @@ private: uint8_t m_isstopped; + uint8_t m_volumes[2]; + uint8_t m_5024; + uint8_t m_50a9; + void handle_sound_trigger(int which); void handle_sound_addr_w(int which, int offset, uint8_t data); uint8_t handle_sound_addr_r(int which, int offset); void handle_sound_size_w(int which, int offset, uint8_t data); uint8_t handle_sound_size_r(int which, int offset); + + DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_addr_w); + DECLARE_READ8_MEMBER(elan_eu3a05_sound_addr_r); + DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_size_w); + DECLARE_READ8_MEMBER(elan_eu3a05_sound_size_r); + DECLARE_READ8_MEMBER(elan_eu3a05_sound_trigger_r); + DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_trigger_w); + DECLARE_READ8_MEMBER(elan_eu3a05_sound_unk_r); + DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_unk_w); + + DECLARE_READ8_MEMBER(elan_eu3a05_50a8_r); + + DECLARE_READ8_MEMBER(elan_eu3a05_sound_volume_r); + DECLARE_WRITE8_MEMBER(elan_eu3a05_sound_volume_w); + + devcb_write_line m_sound_end_cb[6]; }; DECLARE_DEVICE_TYPE(ELAN_EU3A05_SOUND, elan_eu3a05_sound_device) |