diff options
author | Miodrag Milanović <mmicko@gmail.com> | 2021-07-05 09:56:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-05 09:56:08 +0200 |
commit | 68df03a7d236bc63deb648cc019b3e2fc22d222c (patch) | |
tree | a7bdaad63eab0ef70b76ef99a00933ce715da4df /src/devices/bus/macpds/macpds.h | |
parent | 4a00d428c96946c3a27227718a29a317aa055701 (diff) |
Remove some tag lookups by name (#8252)
Diffstat (limited to 'src/devices/bus/macpds/macpds.h')
-rw-r--r-- | src/devices/bus/macpds/macpds.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/bus/macpds/macpds.h b/src/devices/bus/macpds/macpds.h index cd3f84659d0..ad0ce6a2416 100644 --- a/src/devices/bus/macpds/macpds.h +++ b/src/devices/bus/macpds/macpds.h @@ -31,13 +31,14 @@ public: option_reset(); opts(*this); set_default_option(dflt); - set_macpds_slot(nbtag, tag); + set_macpds_slot(nbtag); } macpds_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // inline configuration - void set_macpds_slot(const char *tag, const char *slottag) { m_macpds_tag = tag; m_macpds_slottag = slottag; } + template <typename T> + void set_macpds_slot(T &&tag) { m_macpds.set_tag(std::forward<T>(tag));} protected: macpds_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); @@ -46,7 +47,7 @@ protected: virtual void device_start() override; // configuration - const char *m_macpds_tag, *m_macpds_slottag; + required_device<macpds_device> m_macpds; }; // device type definition @@ -70,7 +71,9 @@ public: ~macpds_device() { m_device_list.detach_all(); } // inline configuration - void set_cputag(const char *tag) { m_cputag = tag; } + template <typename T> + void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); } + void add_macpds_card(device_macpds_card_interface *card); template<typename R, typename W> void install_device(offs_t start, offs_t end, R rhandler, W whandler, uint32_t mask=0xffffffff); @@ -85,10 +88,9 @@ protected: virtual void device_reset() override; // internal state - cpu_device *m_maincpu; + required_device<cpu_device> m_maincpu; simple_list<device_macpds_card_interface> m_device_list; - const char *m_cputag; }; @@ -115,13 +117,13 @@ public: void install_rom(device_t *dev, const char *romregion, uint32_t addr); // inline configuration - void set_macpds_tag(const char *tag, const char *slottag) { m_macpds_tag = tag; m_macpds_slottag = slottag; } + void set_macpds_and_slot(macpds_device *macpds, macpds_slot_device *macpds_slot) { m_macpds = macpds; m_macpds_slot = macpds_slot; } protected: device_macpds_card_interface(const machine_config &mconfig, device_t &device); - macpds_device *m_macpds; - const char *m_macpds_tag, *m_macpds_slottag; + macpds_device *m_macpds; + macpds_slot_device *m_macpds_slot; private: device_macpds_card_interface *m_next; |