diff options
Diffstat (limited to 'src/devices/cpu/ccpu')
-rw-r--r-- | src/devices/cpu/ccpu/ccpu.cpp | 3 | ||||
-rw-r--r-- | src/devices/cpu/ccpu/ccpu.h | 12 |
2 files changed, 3 insertions, 12 deletions
diff --git a/src/devices/cpu/ccpu/ccpu.cpp b/src/devices/cpu/ccpu/ccpu.cpp index 740c803ad44..6afb97916b2 100644 --- a/src/devices/cpu/ccpu/ccpu.cpp +++ b/src/devices/cpu/ccpu/ccpu.cpp @@ -69,6 +69,7 @@ ccpu_cpu_device::ccpu_cpu_device(const machine_config &mconfig, const char *tag, , m_data_config("data", ENDIANNESS_BIG, 16, 32, -1) , m_io_config("io", ENDIANNESS_BIG, 8, 5, 0) , m_external_input(*this) + , m_vector_callback(*this) , m_flags(0) { } @@ -103,7 +104,7 @@ void ccpu_cpu_device::device_start() { /* copy input params */ m_external_input.resolve_safe(0); - m_vector_callback.bind_relative_to(*owner()); + m_vector_callback.resolve(); assert(!m_vector_callback.isnull()); m_program = &space(AS_PROGRAM); diff --git a/src/devices/cpu/ccpu/ccpu.h b/src/devices/cpu/ccpu/ccpu.h index c42687aaa0c..359bac3e4ce 100644 --- a/src/devices/cpu/ccpu/ccpu.h +++ b/src/devices/cpu/ccpu/ccpu.h @@ -47,17 +47,7 @@ public: // configuration helpers auto external_func() { return m_external_input.bind(); } - template <typename Object> void set_vector_func(Object &&cb) { m_vector_callback = std::forward<Object>(cb); } - void set_vector_func(vector_delegate callback) { m_vector_callback = callback; } - template <class FunctionClass> void set_vector_func(const char *devname, - void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name) - { - set_vector_func(vector_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); - } - template <class FunctionClass> void set_vector_func(void (FunctionClass::*callback)(int16_t, int16_t, int16_t, int16_t, uint8_t), const char *name) - { - set_vector_func(vector_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); - } + template <typename... T> void set_vector_func(T &&... args) { m_vector_callback.set(std::forward<T>(args)...); } DECLARE_READ8_MEMBER( read_jmi ); void wdt_timer_trigger(); |