summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/k573cass.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/k573cass.h')
-rw-r--r--src/mame/machine/k573cass.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/src/mame/machine/k573cass.h b/src/mame/machine/k573cass.h
index ee5057746cc..442ec5d2d86 100644
--- a/src/mame/machine/k573cass.h
+++ b/src/mame/machine/k573cass.h
@@ -4,11 +4,11 @@
* Konami 573 Security Cassette
*
*/
+#ifndef MAME_MACHINE_K573CASS_H
+#define MAME_MACHINE_K573CASS_H
#pragma once
-#ifndef __K573CASS_H__
-#define __K573CASS_H__
#include "machine/adc083x.h"
#include "machine/ds2401.h"
@@ -20,7 +20,7 @@
devcb = &konami573_cassette_slot_device::set_dsr_handler(*device, DEVCB_##_devcb);
-extern const device_type KONAMI573_CASSETTE_SLOT;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_SLOT, konami573_cassette_slot_device)
class konami573_cassette_interface;
@@ -32,7 +32,7 @@ class konami573_cassette_slot_device : public device_t,
public:
konami573_cassette_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template<class _Object> static devcb_base &set_dsr_handler(device_t &device, _Object object) { return downcast<konami573_cassette_slot_device &>(device).m_dsr_handler.set_callback(object); }
+ template <class Object> static devcb_base &set_dsr_handler(device_t &device, Object &&cb) { return downcast<konami573_cassette_slot_device &>(device).m_dsr_handler.set_callback(std::forward<Object>(cb)); }
DECLARE_WRITE_LINE_MEMBER(write_line_d0);
DECLARE_WRITE_LINE_MEMBER(write_line_d1);
@@ -62,7 +62,6 @@ class konami573_cassette_interface : public device_slot_card_interface
friend class konami573_cassette_slot_device;
public:
- konami573_cassette_interface(const machine_config &mconfig, device_t &device);
virtual ~konami573_cassette_interface();
DECLARE_WRITE_LINE_MEMBER(output_dsr) { m_slot->m_dsr_handler(state); }
@@ -81,18 +80,20 @@ public:
virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_do);
virtual DECLARE_READ_LINE_MEMBER(read_line_adc083x_sars);
+protected:
+ konami573_cassette_interface(const machine_config &mconfig, device_t &device);
+
konami573_cassette_slot_device *m_slot;
};
-extern const device_type KONAMI573_CASSETTE_X;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_X, konami573_cassette_x_device)
class konami573_cassette_x_device: public device_t,
public konami573_cassette_interface
{
public:
konami573_cassette_x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- konami573_cassette_x_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);
virtual DECLARE_READ_LINE_MEMBER(read_line_secflash_sda) override;
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d0) override;
@@ -101,6 +102,8 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d3) override;
protected:
+ konami573_cassette_x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
virtual void device_start() override;
virtual machine_config_constructor device_mconfig_additions() const override;
@@ -109,7 +112,7 @@ private:
};
-extern const device_type KONAMI573_CASSETTE_XI;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_XI, konami573_cassette_xi_device)
class konami573_cassette_xi_device: public konami573_cassette_x_device
{
@@ -136,7 +139,7 @@ private:
};
-extern const device_type KONAMI573_CASSETTE_Y;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_Y, konami573_cassette_y_device)
#define MCFG_KONAMI573_CASSETTE_Y_D0_HANDLER(_devcb) \
@@ -168,7 +171,6 @@ class konami573_cassette_y_device: public device_t,
{
public:
konami573_cassette_y_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- konami573_cassette_y_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);
// static configuration helpers
template<class _Object> static devcb_base &set_d0_handler(device_t &device, _Object object) { return downcast<konami573_cassette_y_device &>(device).m_d0_handler.set_callback(object); }
@@ -191,6 +193,8 @@ public:
virtual DECLARE_WRITE_LINE_MEMBER(write_line_d7) override;
protected:
+ konami573_cassette_y_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
virtual void device_start() override;
virtual machine_config_constructor device_mconfig_additions() const override;
@@ -207,7 +211,7 @@ private:
};
-extern const device_type KONAMI573_CASSETTE_YI;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_YI, konami573_cassette_yi_device)
class konami573_cassette_yi_device: public konami573_cassette_y_device
{
@@ -225,7 +229,7 @@ private:
};
-extern const device_type KONAMI573_CASSETTE_ZI;
+DECLARE_DEVICE_TYPE(KONAMI573_CASSETTE_ZI, konami573_cassette_zi_device)
class konami573_cassette_zi_device: public device_t,
public konami573_cassette_interface
@@ -251,4 +255,4 @@ private:
};
-#endif
+#endif // MAME_MACHINE_K573CASS_H