diff options
Diffstat (limited to 'src/mame/machine/gridkeyb.h')
-rw-r--r-- | src/mame/machine/gridkeyb.h | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/mame/machine/gridkeyb.h b/src/mame/machine/gridkeyb.h index c70669dcb05..c4a41cd1589 100644 --- a/src/mame/machine/gridkeyb.h +++ b/src/mame/machine/gridkeyb.h @@ -9,18 +9,6 @@ /*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define GRIDKEYBCB_PUT(cls, fnc) grid_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), DEVICE_SELF, ((cls *)nullptr)) -#define GRIDKEYBCB_DEVPUT(tag, cls, fnc) grid_keyboard_device::output_delegate((&cls::fnc), (#cls "::" #fnc), (tag), ((cls *)nullptr)) - -#define MCFG_GRID_KEYBOARD_CB(cb) \ - downcast<grid_keyboard_device &>(*device).set_keyboard_callback((GRIDKEYBCB_##cb)); - - - -/*************************************************************************** DEVICE TYPE GLOBALS ***************************************************************************/ @@ -52,7 +40,12 @@ public: device_t *owner, u32 clock); - template <class Object> void set_keyboard_callback(Object &&cb) { m_keyboard_cb = std::forward<Object>(cb); } + template <class FunctionClass> + void set_keyboard_callback(void (FunctionClass::*callback)(u16 character), const char *name) + { + set_keyboard_callback(output_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + void set_keyboard_callback(output_delegate callback) { m_keyboard_cb = callback; } virtual ioport_constructor device_input_ports() const override; |