diff options
author | 2019-11-01 00:47:41 +1100 | |
---|---|---|
committer | 2019-11-01 00:47:41 +1100 | |
commit | 6f4c1f6e5b2525ac8b700b3a0754f5e99c4223e1 (patch) | |
tree | 4b0e0ac5cf1c3a7fd518a7d8f4d12f39291b2629 /src/devices/bus/sunkbd | |
parent | 0be348c7fbc8c0478f724ba098dabeb9eb3aab8c (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.cpp | 27 | ||||
-rw-r--r-- | src/devices/bus/sunkbd/sunkbd.h | 5 |
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; |