diff options
Diffstat (limited to 'src/devices/bus/apricot/expansion/expansion.h')
-rw-r--r-- | src/devices/bus/apricot/expansion/expansion.h | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/src/devices/bus/apricot/expansion/expansion.h b/src/devices/bus/apricot/expansion/expansion.h index e87bcf355d4..8ea2a850bc3 100644 --- a/src/devices/bus/apricot/expansion/expansion.h +++ b/src/devices/bus/apricot/expansion/expansion.h @@ -41,10 +41,10 @@ ***************************************************************************/ -#pragma once +#ifndef MAME_BUS_APRICOT_EXPANSION_EXPANSION_H +#define MAME_BUS_APRICOT_EXPANSION_EXPANSION_H -#ifndef __APRICOT_EXPANSION_H__ -#define __APRICOT_EXPANSION_H__ +#pragma once @@ -97,8 +97,9 @@ class apricot_expansion_slot_device : public device_t, public device_slot_interf public: // construction/destruction apricot_expansion_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *name, - const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + +protected: + apricot_expansion_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); // device-level overrides virtual void device_start() override; @@ -117,23 +118,23 @@ public: apricot_expansion_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~apricot_expansion_bus_device(); - template<class _Object> static devcb_base &set_dma1_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_dma1_handler.set_callback(object); } + template <class Object> static devcb_base &set_dma1_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_dma1_handler.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base &set_dma2_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_dma2_handler.set_callback(object); } + template <class Object> static devcb_base &set_dma2_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_dma2_handler.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base &set_ext1_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_ext1_handler.set_callback(object); } + template <class Object> static devcb_base &set_ext1_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_ext1_handler.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base &set_ext2_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_ext2_handler.set_callback(object); } + template <class Object> static devcb_base &set_ext2_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_ext2_handler.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base &set_int2_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_int2_handler.set_callback(object); } + template <class Object> static devcb_base &set_int2_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_int2_handler.set_callback(std::forward<Object>(cb)); } - template<class _Object> static devcb_base &set_int3_handler(device_t &device, _Object object) - { return downcast<apricot_expansion_bus_device &>(device).m_int3_handler.set_callback(object); } + template <class Object> static devcb_base &set_int3_handler(device_t &device, Object &&cb) + { return downcast<apricot_expansion_bus_device &>(device).m_int3_handler.set_callback(std::forward<Object>(cb)); } // inline configuration static void set_cpu_tag(device_t &device, device_t *owner, const char *tag); @@ -178,25 +179,29 @@ private: }; // device type definition -extern const device_type APRICOT_EXPANSION_BUS; +DECLARE_DEVICE_TYPE(APRICOT_EXPANSION_BUS, apricot_expansion_bus_device) // ======================> device_apricot_expansion_card_interface class device_apricot_expansion_card_interface : public device_slot_card_interface { + template <class ElementType> friend class simple_list; + public: // construction/destruction - device_apricot_expansion_card_interface(const machine_config &mconfig, device_t &device); virtual ~device_apricot_expansion_card_interface(); void set_bus_device(apricot_expansion_bus_device *bus); device_apricot_expansion_card_interface *next() const { return m_next; } - device_apricot_expansion_card_interface *m_next; protected: + device_apricot_expansion_card_interface(const machine_config &mconfig, device_t &device); + apricot_expansion_bus_device *m_bus; + + device_apricot_expansion_card_interface *m_next; }; @@ -204,4 +209,4 @@ protected: #include "cards.h" -#endif // __APRICOT_EXPANSION_H__ +#endif // MAME_BUS_APRICOT_EXPANSION_EXPANSION_H |