summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/upd7002.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/upd7002.h')
-rw-r--r--src/devices/machine/upd7002.h18
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)