summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/sunkbd
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-11-01 00:47:41 +1100
committer Vas Crabb <vas@vastheman.com>2019-11-01 00:47:41 +1100
commit6f4c1f6e5b2525ac8b700b3a0754f5e99c4223e1 (patch)
tree4b0e0ac5cf1c3a7fd518a7d8f4d12f39291b2629 /src/devices/bus/sunkbd
parent0be348c7fbc8c0478f724ba098dabeb9eb3aab8c (diff)
Spring cleaning:
* Changed emu_fatalerror to use util::string_format semantics * Fixed some incorrectly marked up stuff in build scripts * Make internal layout compression type a scoped enum (only zlib is supported still, but at least the values aren't magic numbers now) * Fixed memory leaks in Xbox USB * There can only be one "perfect quantum" device - enforce that only the root machine can set it, as allowing subdevices to will cause weird issues with slot cards overiding it * Allow multiple devices to set maximum quantum and use the most restrictive one (it's maximum quantum, it would be minimum interleave) * Got rid of device_slot_card_interface as it wasn't providing value * Added a helper template to reduce certain kinds of boilerplate in slots/buses * Cleaned up some particularly bad slot code (plenty more of that to do), and made some slots more idiomatic
Diffstat (limited to 'src/devices/bus/sunkbd')
-rw-r--r--src/devices/bus/sunkbd/sunkbd.cpp27
-rw-r--r--src/devices/bus/sunkbd/sunkbd.h5
2 files changed, 5 insertions, 27 deletions
diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp
index 82152b5f905..1d0b62df3fd 100644
--- a/src/devices/bus/sunkbd/sunkbd.cpp
+++ b/src/devices/bus/sunkbd/sunkbd.cpp
@@ -120,7 +120,7 @@ sun_keyboard_port_device::sun_keyboard_port_device(
device_t *owner,
uint32_t clock)
: device_t(mconfig, type, tag, owner, clock)
- , device_slot_interface(mconfig, *this)
+ , device_single_card_slot_interface<device_sun_keyboard_port_interface>(mconfig, *this)
, m_rxd(0)
, m_rxd_handler(*this)
, m_dev(nullptr)
@@ -135,20 +135,7 @@ sun_keyboard_port_device::~sun_keyboard_port_device()
void sun_keyboard_port_device::device_config_complete()
{
- m_dev = dynamic_cast<device_sun_keyboard_port_interface *>(get_card_device());
-}
-
-
-void sun_keyboard_port_device::device_validity_check(validity_checker &valid) const
-{
- device_t *const card(get_card_device());
- if (card && !dynamic_cast<device_sun_keyboard_port_interface *>(card))
- {
- osd_printf_error(
- "Card device %s (%s) does not implement device_sun_keyboard_port_interface\n",
- card->tag(),
- card->name());
- }
+ m_dev = get_card_device();
}
@@ -160,14 +147,6 @@ void sun_keyboard_port_device::device_resolve_objects()
void sun_keyboard_port_device::device_start()
{
- if (get_card_device() && !m_dev)
- {
- throw emu_fatalerror(
- "Card device %s (%s) does not implement device_sun_keyboard_port_interface\n",
- get_card_device()->tag(),
- get_card_device()->name());
- }
-
save_item(NAME(m_rxd));
m_rxd = 1;
@@ -185,7 +164,7 @@ WRITE_LINE_MEMBER( sun_keyboard_port_device::write_txd )
device_sun_keyboard_port_interface::device_sun_keyboard_port_interface(machine_config const &mconfig, device_t &device)
- : device_slot_card_interface(mconfig, device)
+ : device_interface(device, "sunkbd")
, m_port(dynamic_cast<sun_keyboard_port_device *>(device.owner()))
{
}
diff --git a/src/devices/bus/sunkbd/sunkbd.h b/src/devices/bus/sunkbd/sunkbd.h
index 532193cbf0d..8a210025912 100644
--- a/src/devices/bus/sunkbd/sunkbd.h
+++ b/src/devices/bus/sunkbd/sunkbd.h
@@ -11,7 +11,7 @@
class device_sun_keyboard_port_interface;
-class sun_keyboard_port_device : public device_t, public device_slot_interface
+class sun_keyboard_port_device : public device_t, public device_single_card_slot_interface<device_sun_keyboard_port_interface>
{
friend class device_sun_keyboard_port_interface;
@@ -39,7 +39,6 @@ protected:
sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock);
virtual void device_config_complete() override;
- virtual void device_validity_check(validity_checker &valid) const override;
virtual void device_resolve_objects() override;
virtual void device_start() override;
@@ -52,7 +51,7 @@ private:
};
-class device_sun_keyboard_port_interface : public device_slot_card_interface
+class device_sun_keyboard_port_interface : public device_interface
{
friend class sun_keyboard_port_device;