summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/apricot/expansion/expansion.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/apricot/expansion/expansion.h')
-rw-r--r--src/devices/bus/apricot/expansion/expansion.h47
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