summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/upd7220.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/upd7220.h')
-rw-r--r--src/devices/video/upd7220.h32
1 files changed, 6 insertions, 26 deletions
diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h
index 4ea2706a22b..6a9837d90eb 100644
--- a/src/devices/video/upd7220.h
+++ b/src/devices/video/upd7220.h
@@ -44,26 +44,6 @@
#define UPD7220_DRAW_TEXT_LINE_MEMBER(_name) void _name(bitmap_rgb32 &bitmap, uint32_t addr, int y, int wd, int pitch, int lr, int cursor_on, int cursor_addr)
-#define MCFG_UPD7220_DISPLAY_PIXELS_CALLBACK_OWNER(_class, _method) \
- 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) \
- downcast<upd7220_device &>(*device).set_draw_text_callback(upd7220_device::draw_text_delegate(&_class::_method, #_class "::" #_method, this));
-
-#define MCFG_UPD7220_DRQ_CALLBACK(_write) \
- downcast<upd7220_device &>(*device).set_drq_wr_callback(DEVCB_##_write);
-
-#define MCFG_UPD7220_HSYNC_CALLBACK(_write) \
- downcast<upd7220_device &>(*device).set_hsync_wr_callback(DEVCB_##_write);
-
-#define MCFG_UPD7220_VSYNC_CALLBACK(_write) \
- downcast<upd7220_device &>(*device).set_vsync_wr_callback(DEVCB_##_write);
-
-#define MCFG_UPD7220_BLANK_CALLBACK(_write) \
- downcast<upd7220_device &>(*device).set_blank_wr_callback(DEVCB_##_write);
-
-
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -82,13 +62,13 @@ public:
// construction/destruction
upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- 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 <typename... T> void set_display_pixels_callback(T &&... args) { m_display_cb = display_pixels_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_draw_text_callback(T &&... args) { m_draw_text_cb = draw_text_delegate(std::forward<T>(args)...); }
- 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)); }
+ auto drq_wr_callback() { return m_write_drq.bind(); }
+ auto hsync_wr_callback() { return m_write_hsync.bind(); }
+ auto vsync_wr_callback() { return m_write_vsync.bind(); }
+ auto blank_wr_callback() { return m_write_blank.bind(); }
DECLARE_READ8_MEMBER( read );
DECLARE_WRITE8_MEMBER( write );