diff options
Diffstat (limited to 'src/devices/video/upd7220.h')
-rw-r--r-- | src/devices/video/upd7220.h | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h index a8e4a3f73ab..692aeb09024 100644 --- a/src/devices/video/upd7220.h +++ b/src/devices/video/upd7220.h @@ -45,22 +45,22 @@ #define MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(_class, _method) \ - upd7220_device::static_set_display_pixels_callback(*device, upd7220_device::display_pixels_delegate(&_class::_method, #_class "::" #_method, this)); + downcast<upd7220_device &>(*device).set_display_pixels_callback(upd7220_device::display_pixels_delegate(&_class::_method, #_class "::" #_method, this)); #define MCFG_UPD7220_DRAW_TEXT_CALLBACK_OWNER(_class, _method) \ - upd7220_device::static_set_draw_text_callback(*device, upd7220_device::draw_text_delegate(&_class::_method, #_class "::" #_method, this)); + downcast<upd7220_device &>(*device).set_draw_text_callback(upd7220_device::draw_text_delegate(&_class::_method, #_class "::" #_method, this)); #define MCFG_UPD7220_DRQ_CALLBACK(_write) \ - devcb = &upd7220_device::set_drq_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<upd7220_device &>(*device).set_drq_wr_callback(DEVCB_##_write); #define MCFG_UPD7220_HSYNC_CALLBACK(_write) \ - devcb = &upd7220_device::set_hsync_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<upd7220_device &>(*device).set_hsync_wr_callback(DEVCB_##_write); #define MCFG_UPD7220_VSYNC_CALLBACK(_write) \ - devcb = &upd7220_device::set_vsync_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<upd7220_device &>(*device).set_vsync_wr_callback(DEVCB_##_write); #define MCFG_UPD7220_BLANK_CALLBACK(_write) \ - devcb = &upd7220_device::set_blank_wr_callback(*device, DEVCB_##_write); + devcb = &downcast<upd7220_device &>(*device).set_blank_wr_callback(DEVCB_##_write); @@ -82,13 +82,13 @@ public: // construction/destruction upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - static void static_set_display_pixels_callback(device_t &device, display_pixels_delegate &&cb) { downcast<upd7220_device &>(device).m_display_cb = std::move(cb); } - static void static_set_draw_text_callback(device_t &device, draw_text_delegate &&cb) { downcast<upd7220_device &>(device).m_draw_text_cb = std::move(cb); } + template <typename Object> void set_display_pixels_callback(Object &&cb) { m_display_cb = std::forward<Object>(cb); } + template <typename Object> void set_draw_text_callback(Object &&cb) { m_draw_text_cb = std::forward<Object>(cb); } - template <class Object> static devcb_base &set_drq_wr_callback(device_t &device, Object &&cb) { return downcast<upd7220_device &>(device).m_write_drq.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_hsync_wr_callback(device_t &device, Object &&cb) { return downcast<upd7220_device &>(device).m_write_hsync.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_vsync_wr_callback(device_t &device, Object &&cb) { return downcast<upd7220_device &>(device).m_write_vsync.set_callback(std::forward<Object>(cb)); } - template <class Object> static devcb_base &set_blank_wr_callback(device_t &device, Object &&cb) { return downcast<upd7220_device &>(device).m_write_blank.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return m_write_drq.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_hsync_wr_callback(Object &&cb) { return m_write_hsync.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_vsync_wr_callback(Object &&cb) { return m_write_vsync.set_callback(std::forward<Object>(cb)); } + template <class Object> devcb_base &set_blank_wr_callback(Object &&cb) { return m_write_blank.set_callback(std::forward<Object>(cb)); } DECLARE_READ8_MEMBER( read ); DECLARE_WRITE8_MEMBER( write ); |