mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
Made device startup cleaner.
This commit is contained in:
parent
2b2197e01f
commit
27c185a25c
@ -167,7 +167,7 @@ ATTR_COLD void netlist_base_t::start()
|
||||
for (tagmap_devices_t::entry_t *entry = m_devices.first(); entry != NULL; entry = m_devices.next(entry))
|
||||
{
|
||||
netlist_device_t *dev = entry->object();
|
||||
dev->init(*this, entry->tag().cstr());
|
||||
dev->start_dev();
|
||||
}
|
||||
|
||||
}
|
||||
@ -373,13 +373,13 @@ ATTR_COLD netlist_setup_t &netlist_device_t::setup()
|
||||
ATTR_COLD void netlist_device_t::init(netlist_base_t &anetlist, const pstring &name)
|
||||
{
|
||||
netlist_core_device_t::init(anetlist, name);
|
||||
start();
|
||||
}
|
||||
|
||||
|
||||
ATTR_COLD void netlist_device_t::register_sub(netlist_device_t &dev, const pstring &name)
|
||||
{
|
||||
dev.init(netlist(), this->name() + "." + name);
|
||||
dev.start_dev();
|
||||
}
|
||||
|
||||
ATTR_COLD void netlist_device_t::register_subalias(const pstring &name, netlist_core_terminal_t &term)
|
||||
|
@ -899,8 +899,6 @@ public:
|
||||
ATTR_COLD virtual ~netlist_core_device_t();
|
||||
|
||||
ATTR_COLD virtual void init(netlist_base_t &anetlist, const pstring &name);
|
||||
|
||||
|
||||
ATTR_HOT virtual void update_param() {}
|
||||
|
||||
ATTR_HOT inline void update_dev()
|
||||
@ -911,6 +909,10 @@ public:
|
||||
update();
|
||||
#endif
|
||||
}
|
||||
ATTR_HOT inline void start_dev()
|
||||
{
|
||||
start();
|
||||
}
|
||||
|
||||
ATTR_HOT const netlist_sig_t INPLOGIC_PASSIVE(netlist_logic_input_t &inp);
|
||||
|
||||
|
@ -59,6 +59,7 @@ netlist_setup_t::~netlist_setup_t()
|
||||
// FIXME: Move to netlist ...
|
||||
netlist_device_t *netlist_setup_t::register_dev(netlist_device_t *dev, const pstring &name)
|
||||
{
|
||||
dev->init(netlist(), name);
|
||||
if (!(netlist().m_devices.add(name, dev, false)==TMERR_NONE))
|
||||
netlist().error("Error adding %s to device list\n", name.cstr());
|
||||
return dev;
|
||||
@ -364,8 +365,8 @@ nld_base_d_to_a_proxy *netlist_setup_t::get_d_a_proxy(netlist_output_t &out)
|
||||
pstring x = pstring::sprintf("proxy_da_%d", m_proxy_cnt);
|
||||
m_proxy_cnt++;
|
||||
|
||||
proxy->init(netlist(), x);
|
||||
register_dev(proxy, x);
|
||||
proxy->start_dev();
|
||||
|
||||
#if 1
|
||||
/* connect all existing terminals to new net */
|
||||
@ -396,8 +397,8 @@ void netlist_setup_t::connect_input_output(netlist_input_t &in, netlist_output_t
|
||||
pstring x = pstring::sprintf("proxy_ad_%d", m_proxy_cnt);
|
||||
m_proxy_cnt++;
|
||||
|
||||
proxy->init(netlist(), x);
|
||||
register_dev(proxy, x);
|
||||
proxy->start_dev();
|
||||
|
||||
proxy->m_Q.net().register_con(in);
|
||||
out.net().register_con(proxy->m_I);
|
||||
@ -429,8 +430,8 @@ void netlist_setup_t::connect_terminal_input(netlist_terminal_t &term, netlist_i
|
||||
pstring x = pstring::sprintf("proxy_da_%d", m_proxy_cnt);
|
||||
m_proxy_cnt++;
|
||||
|
||||
proxy->init(netlist(), x);
|
||||
register_dev(proxy, x);
|
||||
proxy->start_dev();
|
||||
|
||||
connect_terminals(term, proxy->m_I);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user