summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/a800/a8sio.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/a800/a8sio.h')
-rw-r--r--src/devices/bus/a800/a8sio.h31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/devices/bus/a800/a8sio.h b/src/devices/bus/a800/a8sio.h
index 2684a3d3c28..31d853ec633 100644
--- a/src/devices/bus/a800/a8sio.h
+++ b/src/devices/bus/a800/a8sio.h
@@ -30,10 +30,10 @@
***************************************************************************/
-#pragma once
+#ifndef MAME_BUS_A800_A8SIO_H
+#define MAME_BUS_A800_A8SIO_H
-#ifndef __A8SIO_H_
-#define __A8SIO_H_
+#pragma once
//**************************************************************************
@@ -55,15 +55,16 @@ class a8sio_slot_device : public device_t,
public:
// construction/destruction
a8sio_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- a8sio_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);
-
- // device-level overrides
- virtual void device_start() override;
// inline configuration
static void static_set_a8sio_slot(device_t &device, const char *tag, const char *slottag);
protected:
+ a8sio_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;
+
// configuration
const char *m_a8sio_tag;
const char *m_a8sio_slottag;
@@ -71,7 +72,7 @@ protected:
// device type definition
-extern const device_type A8SIO_SLOT;
+DECLARE_DEVICE_TYPE(A8SIO_SLOT, a8sio_slot_device)
class device_a8sio_card_interface;
@@ -81,12 +82,11 @@ class a8sio_device : public device_t
public:
// construction/destruction
a8sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- a8sio_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);
// inline configuration
- template<class _Object> static devcb_base &set_clock_in_callback(device_t &device, _Object object) { return downcast<a8sio_device &>(device).m_out_clock_in_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_data_in_callback(device_t &device, _Object object) { return downcast<a8sio_device &>(device).m_out_data_in_cb.set_callback(object); }
- template<class _Object> static devcb_base &set_audio_in_callback(device_t &device, _Object object) { return downcast<a8sio_device &>(device).m_out_audio_in_cb.set_callback(object); }
+ template <class Object> static devcb_base &set_clock_in_callback(device_t &device, Object &&cb) { return downcast<a8sio_device &>(device).m_out_clock_in_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_data_in_callback(device_t &device, Object &&cb) { return downcast<a8sio_device &>(device).m_out_data_in_cb.set_callback(std::forward<Object>(cb)); }
+ template <class Object> static devcb_base &set_audio_in_callback(device_t &device, Object &&cb) { return downcast<a8sio_device &>(device).m_out_audio_in_cb.set_callback(std::forward<Object>(cb)); }
void add_a8sio_card(device_a8sio_card_interface *card);
device_a8sio_card_interface *get_a8sio_card();
@@ -101,6 +101,8 @@ public:
DECLARE_WRITE8_MEMBER( audio_in_w ); // pin 11
protected:
+ a8sio_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;
virtual void device_reset() override;
@@ -122,7 +124,6 @@ class device_a8sio_card_interface : public device_slot_card_interface
friend class a8sio_device;
public:
// construction/destruction
- device_a8sio_card_interface(const machine_config &mconfig, device_t &device);
virtual ~device_a8sio_card_interface();
void set_a8sio_device();
@@ -133,6 +134,8 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER( motor_w );
public:
+ device_a8sio_card_interface(const machine_config &mconfig, device_t &device);
+
a8sio_device *m_a8sio;
const char *m_a8sio_tag;
const char *m_a8sio_slottag;
@@ -141,4 +144,4 @@ public:
SLOT_INTERFACE_EXTERN(a8sio_cards);
-#endif
+#endif // MAME_BUS_A800_A8SIO_H