diff options
Diffstat (limited to 'src/devices/cpu/lc8670')
-rw-r--r-- | src/devices/cpu/lc8670/lc8670.cpp | 3 | ||||
-rw-r--r-- | src/devices/cpu/lc8670/lc8670.h | 13 |
2 files changed, 3 insertions, 13 deletions
diff --git a/src/devices/cpu/lc8670/lc8670.cpp b/src/devices/cpu/lc8670/lc8670.cpp index 325c93eadff..b35a25329bd 100644 --- a/src/devices/cpu/lc8670/lc8670.cpp +++ b/src/devices/cpu/lc8670/lc8670.cpp @@ -180,6 +180,7 @@ lc8670_cpu_device::lc8670_cpu_device(const machine_config &mconfig, const char * , m_pc(0) , m_ppc(0) , m_bankswitch_func(*this) + , m_lcd_update_func(*this) { memset(m_sfr, 0x00, sizeof(m_sfr)); memset(m_timer0, 0x00, sizeof(m_timer0)); @@ -202,8 +203,8 @@ void lc8670_cpu_device::device_start() set_icountptr(m_icount); // resolve callbacks - m_lcd_update_func.bind_relative_to(*owner()); m_bankswitch_func.resolve(); + m_lcd_update_func.resolve(); // setup timers m_basetimer = timer_alloc(BASE_TIMER); diff --git a/src/devices/cpu/lc8670/lc8670.h b/src/devices/cpu/lc8670/lc8670.h index 82b78fee058..f4845bf0cf9 100644 --- a/src/devices/cpu/lc8670/lc8670.h +++ b/src/devices/cpu/lc8670/lc8670.h @@ -80,18 +80,7 @@ public: auto bank_cb() { return m_bankswitch_func.bind(); } - template <typename Object> void set_lcd_update_cb(Object &&cb) { m_lcd_update_func = std::forward<Object>(cb); } - void set_lcd_update_cb(lcd_update_delegate callback) { m_lcd_update_func = callback; } - template <class FunctionClass> void set_lcd_update_cb(const char *devname, - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name) - { - set_lcd_update_cb(lcd_update_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); - } - template <class FunctionClass> void set_lcd_update_cb( - uint32_t (FunctionClass::*callback)(bitmap_ind16 &, const rectangle &, uint8_t*, bool, uint8_t), const char *name) - { - set_lcd_update_cb(lcd_update_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); - } + template <typename... T> void set_lcd_update_cb(T &&... args) { m_lcd_update_func.set(std::forward<T>(args)...); } void lc8670_internal_map(address_map &map); protected: |