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/sgikbd | |
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/sgikbd')
-rw-r--r-- | src/devices/bus/sgikbd/sgikbd.cpp | 20 | ||||
-rw-r--r-- | src/devices/bus/sgikbd/sgikbd.h | 5 |
2 files changed, 5 insertions, 20 deletions
diff --git a/src/devices/bus/sgikbd/sgikbd.cpp b/src/devices/bus/sgikbd/sgikbd.cpp index 4ad2d1f925a..478a65243b5 100644 --- a/src/devices/bus/sgikbd/sgikbd.cpp +++ b/src/devices/bus/sgikbd/sgikbd.cpp @@ -21,7 +21,7 @@ sgi_keyboard_port_device::sgi_keyboard_port_device(machine_config const &mconfig sgi_keyboard_port_device::sgi_keyboard_port_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) - , device_slot_interface(mconfig, *this) + , device_single_card_slot_interface<device_sgi_keyboard_port_interface>(mconfig, *this) , m_rxd(0) , m_rxd_handler(*this) , m_dev(nullptr) @@ -34,16 +34,7 @@ sgi_keyboard_port_device::~sgi_keyboard_port_device() void sgi_keyboard_port_device::device_config_complete() { - m_dev = dynamic_cast<device_sgi_keyboard_port_interface *>(get_card_device()); -} - -void sgi_keyboard_port_device::device_validity_check(validity_checker &valid) const -{ - device_t *const card(get_card_device()); - if (card && !dynamic_cast<device_sgi_keyboard_port_interface *>(card)) - { - logerror("Card device %s (%s) does not implement device_sgi_keyboard_port_interface\n", card->tag(), card->name()); - } + m_dev = get_card_device(); } void sgi_keyboard_port_device::device_resolve_objects() @@ -53,11 +44,6 @@ void sgi_keyboard_port_device::device_resolve_objects() void sgi_keyboard_port_device::device_start() { - if (get_card_device() && !m_dev) - { - throw emu_fatalerror("Card device %s (%s) does not implement device_sgi_keyboard_port_interface\n", get_card_device()->tag(), get_card_device()->name()); - } - save_item(NAME(m_rxd)); m_rxd = 1; @@ -71,7 +57,7 @@ WRITE_LINE_MEMBER(sgi_keyboard_port_device::write_txd) } device_sgi_keyboard_port_interface::device_sgi_keyboard_port_interface(machine_config const &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) + : device_interface(device, "sgikbd") , m_port(dynamic_cast<sgi_keyboard_port_device *>(device.owner())) { } diff --git a/src/devices/bus/sgikbd/sgikbd.h b/src/devices/bus/sgikbd/sgikbd.h index 1aa87bd43ad..bf64fd34b6a 100644 --- a/src/devices/bus/sgikbd/sgikbd.h +++ b/src/devices/bus/sgikbd/sgikbd.h @@ -9,7 +9,7 @@ class device_sgi_keyboard_port_interface; -class sgi_keyboard_port_device : public device_t, public device_slot_interface +class sgi_keyboard_port_device : public device_t, public device_single_card_slot_interface<device_sgi_keyboard_port_interface> { friend class device_sgi_keyboard_port_interface; @@ -37,7 +37,6 @@ protected: sgi_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; @@ -50,7 +49,7 @@ private: }; -class device_sgi_keyboard_port_interface : public device_slot_card_interface +class device_sgi_keyboard_port_interface : public device_interface { friend class sgi_keyboard_port_device; |