diff options
Diffstat (limited to 'src/devices/machine/dmac.h')
-rw-r--r-- | src/devices/machine/dmac.h | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/src/devices/machine/dmac.h b/src/devices/machine/dmac.h index 8c72c02d05d..203317dd742 100644 --- a/src/devices/machine/dmac.h +++ b/src/devices/machine/dmac.h @@ -17,39 +17,9 @@ //************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_DMAC_ADD(_tag, _clock) \ - MCFG_DEVICE_ADD(_tag, AMIGA_DMAC, _clock) -#define MCFG_DMAC_CFGOUT_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_cfgout_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_INT_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_int_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_XDACK_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_xdack_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_SCSI_READ_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_scsi_read_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_SCSI_WRITE_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_scsi_write_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_IO_READ_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_io_read_handler(DEVCB_##_devcb); - -#define MCFG_DMAC_IO_WRITE_HANDLER(_devcb) \ - downcast<amiga_dmac_device &>(*device).set_io_write_handler(DEVCB_##_devcb); - - -//************************************************************************** // TYPE DEFINITIONS //************************************************************************** -// ======================> amiga_dmac_device - class amiga_dmac_device : public device_t, public amiga_autoconfig { public: @@ -57,13 +27,13 @@ public: amiga_dmac_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks - template <class Object> devcb_base &set_cfgout_handler(Object &&cb) { return m_cfgout_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_int_handler(Object &&cb) { return m_int_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_xdack_handler(Object &&cb) { return m_xdack_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_scsi_read_handler(Object &&cb) { return m_scsi_read_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_scsi_write_handler(Object &&cb) { return m_scsi_write_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_io_read_handler(Object &&cb) { return m_io_read_handler.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_io_write_handler(Object &&cb) { return m_io_write_handler.set_callback(std::forward<Object>(cb)); } + auto cfgout_handler() { return m_cfgout_handler.bind(); } + auto int_handler() { return m_int_handler.bind(); } + auto xdack_handler() { return m_xdack_handler.bind(); } + auto scsi_read_handler() { return m_scsi_read_handler.bind(); } + auto scsi_write_handler() { return m_scsi_write_handler.bind(); } + auto io_read_handler() { return m_io_read_handler.bind(); } + auto io_write_handler() { return m_io_write_handler.bind(); } void set_address_space(address_space *space) { m_space = space; } void set_rom(uint8_t *rom) { m_rom = rom; } |