summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/lc8670
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/lc8670')
-rw-r--r--src/devices/cpu/lc8670/lc8670.cpp3
-rw-r--r--src/devices/cpu/lc8670/lc8670.h13
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: