diff options
Diffstat (limited to 'src/devices/sound/upd7759.h')
-rw-r--r-- | src/devices/sound/upd7759.h | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/devices/sound/upd7759.h b/src/devices/sound/upd7759.h index 813f5270d89..ab1ff98e3a2 100644 --- a/src/devices/sound/upd7759.h +++ b/src/devices/sound/upd7759.h @@ -23,11 +23,23 @@ public: enum : u32 { STANDARD_CLOCK = 640'000 }; DECLARE_WRITE_LINE_MEMBER( reset_w ); + DECLARE_WRITE_LINE_MEMBER( start_w ); DECLARE_READ_LINE_MEMBER( busy_r ); virtual void port_w(u8 data); void set_start_delay(uint32_t data) { m_start_delay = data; }; protected: + virtual void internal_start_w(int state) = 0; + virtual void internal_reset_w(int state); + + enum + { + TID_PORT_WRITE, + TID_START_WRITE, + TID_RESET_WRITE, + TID_SLAVE_UPDATE + }; + // chip states enum { @@ -56,7 +68,7 @@ protected: virtual void rom_bank_updated() override; // sound stream update overrides - virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) override; + virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override; void update_adpcm(int data); virtual void advance_state(); @@ -110,14 +122,10 @@ public: upd7759_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = STANDARD_CLOCK); - DECLARE_WRITE_LINE_MEMBER( md_w ); - DECLARE_WRITE_LINE_MEMBER( start_w ); + DECLARE_WRITE_LINE_MEMBER( md_w ) { m_md = state; } protected: - enum - { - TIMER_SLAVE_UPDATE - }; + virtual void internal_start_w(int state) override; upd7759_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -136,9 +144,9 @@ public: virtual void device_reset() override; - DECLARE_WRITE_LINE_MEMBER( start_w ); - protected: + virtual void internal_start_w(int state) override; + upd7756_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); virtual void device_start() override; |