summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/elan_eu3a05.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/elan_eu3a05.h')
-rw-r--r--src/mame/audio/elan_eu3a05.h33
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)