summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/scn2674.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/scn2674.h')
-rw-r--r--src/devices/video/scn2674.h19
1 files changed, 3 insertions, 16 deletions
diff --git a/src/devices/video/scn2674.h b/src/devices/video/scn2674.h
index 2b7367eeed0..f3bd19b406a 100644
--- a/src/devices/video/scn2674.h
+++ b/src/devices/video/scn2674.h
@@ -16,8 +16,6 @@ class scn2674_device : public device_t,
public device_memory_interface
{
public:
- scn2674_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
typedef device_delegate<void (bitmap_rgb32 &bitmap, int x, int y, uint8_t linecount, uint8_t charcode, uint8_t attrcode, uint16_t address, bool cursor, bool dw, bool lg, bool ul, bool blink)> draw_character_delegate;
// static configuration
@@ -28,20 +26,9 @@ public:
auto mbc_attr_callback() { return m_mbc_attr_cb.bind(); }
void set_character_width(int value) { m_hpixels_per_column = value; }
- template <class FunctionClass>
- void set_display_callback(void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name)
- {
- set_display_callback(draw_character_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
- }
- template <class FunctionClass>
- void set_display_callback(const char *devname, void (FunctionClass::*callback)(bitmap_rgb32 &, int, int, uint8_t, uint8_t, uint8_t, uint16_t, bool, bool, bool, bool, bool), const char *name)
- {
- set_display_callback(draw_character_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
- }
- void set_display_callback(draw_character_delegate callback)
- {
- m_display_cb = callback;
- }
+ template <typename... T> void set_display_callback(T &&... args) { m_display_cb.set(std::forward<T>(args)...); }
+
+ scn2674_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
uint8_t read(offs_t offset);
void write(offs_t offset, uint8_t data);