diff options
Diffstat (limited to 'src/devices/bus/sms_ctrl/smsctrl.h')
-rw-r--r-- | src/devices/bus/sms_ctrl/smsctrl.h | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/src/devices/bus/sms_ctrl/smsctrl.h b/src/devices/bus/sms_ctrl/smsctrl.h index d116f2c769d..3d11b4e60bd 100644 --- a/src/devices/bus/sms_ctrl/smsctrl.h +++ b/src/devices/bus/sms_ctrl/smsctrl.h @@ -16,26 +16,6 @@ //************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_SMS_CONTROL_PORT_ADD(_tag, _slot_intf, _def_slot) \ - MCFG_DEVICE_ADD(_tag, SMS_CONTROL_PORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) -#define MCFG_SMS_CONTROL_PORT_MODIFY(_tag) \ - MCFG_DEVICE_MODIFY(_tag) - - -#define MCFG_SMS_CONTROL_PORT_TH_INPUT_HANDLER(_devcb) \ - downcast<sms_control_port_device &>(*device).set_th_input_handler(DEVCB_##_devcb); - - -#define MCFG_SMS_CONTROL_PORT_PIXEL_HANDLER(_devcb) \ - downcast<sms_control_port_device &>(*device).set_pixel_handler(DEVCB_##_devcb); - - - -//************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -48,13 +28,23 @@ class sms_control_port_device : public device_t, { public: // construction/destruction + template <typename T> + sms_control_port_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&opts, char const *dflt) + : sms_control_port_device(mconfig, tag, owner, 0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } + sms_control_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~sms_control_port_device(); // static configuration helpers - template <class Object> devcb_base &set_th_input_handler(Object &&cb) { return m_th_pin_handler.set_callback(std::forward<Object>(cb)); } + auto th_input_handler() { return m_th_pin_handler.bind(); } - template <class Object> devcb_base &set_pixel_handler(Object &&cb) { return m_pixel_handler.set_callback(std::forward<Object>(cb)); } + auto pixel_handler() { return m_pixel_handler.bind(); } // Physical DE-9 connector interface |