diff options
Diffstat (limited to 'src/devices/bus/ecbbus/ecbbus.h')
-rw-r--r-- | src/devices/bus/ecbbus/ecbbus.h | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/src/devices/bus/ecbbus/ecbbus.h b/src/devices/bus/ecbbus/ecbbus.h index 8fb7e51f893..9a4943e0a19 100644 --- a/src/devices/bus/ecbbus/ecbbus.h +++ b/src/devices/bus/ecbbus/ecbbus.h @@ -42,10 +42,10 @@ **********************************************************************/ -#pragma once +#ifndef MAME_BUS_ECBBUS_ECBBUS_H +#define MAME_BUS_ECBBUS_ECBBUS_H -#ifndef __ECBBUS__ -#define __ECBBUS__ +#pragma once @@ -56,9 +56,6 @@ #define ECBBUS_TAG "ecbbus" -#define MAX_ECBBUS_SLOTS 16 - - //************************************************************************** // INTERFACE CONFIGURATION MACROS @@ -110,7 +107,7 @@ private: // device type definition -extern const device_type ECBBUS_SLOT; +DECLARE_DEVICE_TYPE(ECBBUS_SLOT, ecbbus_slot_device) // ======================> ecbbus_interface @@ -126,8 +123,8 @@ public: // construction/destruction ecbbus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<ecbbus_device &>(device).m_write_irq.set_callback(object); } - template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<ecbbus_device &>(device).m_write_nmi.set_callback(object); } + template <class Object> static devcb_base &set_irq_wr_callback(device_t &device, Object &&cb) { return downcast<ecbbus_device &>(device).m_write_irq.set_callback(std::forward<Object>(cb)); } + template <class Object> static devcb_base &set_nmi_wr_callback(device_t &device, Object &&cb) { return downcast<ecbbus_device &>(device).m_write_nmi.set_callback(std::forward<Object>(cb)); } void add_card(device_ecbbus_card_interface *card, int pos); @@ -145,6 +142,8 @@ protected: virtual void device_start() override; private: + static constexpr unsigned MAX_ECBBUS_SLOTS = 16; + devcb_write_line m_write_irq; devcb_write_line m_write_nmi; @@ -153,7 +152,7 @@ private: // device type definition -extern const device_type ECBBUS; +DECLARE_DEVICE_TYPE(ECBBUS, ecbbus_device) // ======================> device_ecbbus_card_interface @@ -164,17 +163,16 @@ class device_ecbbus_card_interface : public device_slot_card_interface friend class ecbbus_device; public: - // construction/destruction - device_ecbbus_card_interface(const machine_config &mconfig, device_t &device); - virtual ~device_ecbbus_card_interface() { } - // optional operation overrides virtual uint8_t ecbbus_mem_r(offs_t offset) { return 0; }; virtual void ecbbus_mem_w(offs_t offset, uint8_t data) { }; virtual uint8_t ecbbus_io_r(offs_t offset) { return 0; }; virtual void ecbbus_io_w(offs_t offset, uint8_t data) { }; -public: +protected: + // construction/destruction + device_ecbbus_card_interface(const machine_config &mconfig, device_t &device); + ecbbus_slot_device *m_slot; }; @@ -183,4 +181,4 @@ SLOT_INTERFACE_EXTERN( ecbbus_cards ); -#endif +#endif // MAME_BUS_ECBBUS_ECBBUS_H |