summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/wswan.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/wswan.h')
-rw-r--r--src/mame/video/wswan.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/mame/video/wswan.h b/src/mame/video/wswan.h
index 6d4e1f0e802..89eb0c499da 100644
--- a/src/mame/video/wswan.h
+++ b/src/mame/video/wswan.h
@@ -34,16 +34,6 @@ typedef device_delegate<void (int irq)> wswan_video_irq_cb_delegate;
typedef device_delegate<void (void)> wswan_video_dmasnd_cb_delegate;
#define WSWAN_VIDEO_DMASND_CB_MEMBER(_name) void _name(void)
-#define MCFG_WSWAN_VIDEO_IRQ_CB(_class, _method) \
- downcast<wswan_video_device &>(*device).set_irq_callback(wswan_video_irq_cb_delegate(&_class::_method, #_class "::" #_method, this));
-
-#define MCFG_WSWAN_VIDEO_DMASND_CB(_class, _method) \
- downcast<wswan_video_device &>(*device).set_dmasnd_callback(wswan_video_dmasnd_cb_delegate(&_class::_method, #_class "::" #_method, this));
-
-#define MCFG_WSWAN_VIDEO_TYPE( _type) \
- downcast<wswan_video_device &>(*device).set_vdp_type(_type);
-
-
class wswan_video_device : public device_t
{
public:
@@ -51,8 +41,8 @@ public:
~wswan_video_device() {}
// static configuration
- void set_irq_callback(wswan_video_irq_cb_delegate callback) { m_set_irq_cb = callback; }
- void set_dmasnd_callback(wswan_video_dmasnd_cb_delegate callback) { m_snd_dma_cb = callback; }
+ template <typename... T> void set_irq_callback(T &&... args) { m_set_irq_cb = wswan_video_irq_cb_delegate(std::forward<T>(args)...); }
+ template <typename... T> void set_dmasnd_callback(T &&... args) { m_snd_dma_cb = wswan_video_dmasnd_cb_delegate(std::forward<T>(args)...); }
void set_vdp_type(int type) { m_vdp_type = type; }
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);