diff options
Diffstat (limited to 'src/devices/machine/upd7002.h')
-rw-r--r-- | src/devices/machine/upd7002.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/devices/machine/upd7002.h b/src/devices/machine/upd7002.h index 2a68774d435..7fe1f2ea20b 100644 --- a/src/devices/machine/upd7002.h +++ b/src/devices/machine/upd7002.h @@ -27,18 +27,19 @@ public: upd7002_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <typename... T> void set_get_analogue_callback(T &&... args) { m_get_analogue_cb = get_analogue_delegate(std::forward<T>(args)...); } - template <typename... T> void set_eoc_callback(T &&... args) { m_eoc_cb = eoc_delegate(std::forward<T>(args)...); } + template <typename... T> void set_get_analogue_callback(T &&... args) { m_get_analogue_cb.set(std::forward<T>(args)...); } + template <typename... T> void set_eoc_callback(T &&... args) { m_eoc_cb.set(std::forward<T>(args)...); } - DECLARE_READ_LINE_MEMBER(eoc_r); + int eoc_r(); uint8_t read(offs_t offset); void write(offs_t offset, uint8_t data); protected: // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + + TIMER_CALLBACK_MEMBER(conversion_complete); private: // internal state @@ -77,10 +78,7 @@ private: get_analogue_delegate m_get_analogue_cb; eoc_delegate m_eoc_cb; - enum - { - TIMER_CONVERSION_COMPLETE - }; + emu_timer *m_conversion_timer; }; DECLARE_DEVICE_TYPE(UPD7002, upd7002_device) |