summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_setup.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@arcor.de>2016-05-29 19:30:05 +0200
committer couriersud <couriersud@arcor.de>2016-06-07 21:41:54 +0200
commit3d3f5761f0b0419581762f72ea0984e047d3e55c (patch)
tree9330381da7fef4e9c9013809bba28f2a272da505 /src/lib/netlist/nl_setup.cpp
parentb27790890530b658e178846e7da01045185f0fce (diff)
- Added constructors to prepare to move terminal setup into constructor.
- Reworked twoterm setup. Fixed some timebombs along the way. - Fix r2r dac. Remove dead code. - analog_outputs now created in constructor. - moved analog_input creation into constructor. - moved logic output creation to constructor. - moved all logic inputs into constructor. - Completely removed init_object. Finally. [Couriersud]
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r--src/lib/netlist/nl_setup.cpp33
1 files changed, 7 insertions, 26 deletions
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp
index 8fda3d2f8f4..c072e917240 100644
--- a/src/lib/netlist/nl_setup.cpp
+++ b/src/lib/netlist/nl_setup.cpp
@@ -105,7 +105,6 @@ void setup_t::register_dev(plib::owned_ptr<device_t> dev)
for (auto & d : netlist().m_devices)
if (d->name() == dev->name())
log().fatal("Error adding {1} to device list. Duplicate name \n", d->name());
-
netlist().m_devices.push_back(std::move(dev));
}
@@ -245,7 +244,7 @@ void setup_t::register_and_set_param(pstring name, param_t &param)
log().fatal("Error adding parameter {1} to parameter list\n", name);
}
-void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
+void setup_t::register_object(object_t &obj)
{
switch (obj.type())
{
@@ -256,36 +255,18 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
core_terminal_t &term = dynamic_cast<core_terminal_t &>(obj);
if (term.isType(terminal_t::OUTPUT))
{
- if (term.is_logic())
- {
- logic_output_t &port = dynamic_cast<logic_output_t &>(term);
- port.set_logic_family(dev.logic_family());
- dynamic_cast<logic_output_t &>(term).init_object(dev, dev.name() + "." + name);
- }
- else if (term.is_analog())
- dynamic_cast<analog_output_t &>(term).init_object(dev, dev.name() + "." + name);
- else
- log().fatal("Error adding {1} {2} to terminal list, neither LOGIC nor ANALOG\n", objtype_as_astr(term), term.name());
}
else if (term.isType(terminal_t::INPUT))
{
- if (term.is_logic())
- {
- logic_input_t &port = dynamic_cast<logic_input_t &>(term);
- port.set_logic_family(dev.logic_family());
- }
- term.init_object(dev, dev.name() + "." + name);
- dev.m_terminals.push_back(obj.name());
+ static_cast<device_t &>(term.device()).m_terminals.push_back(obj.name());
}
else
{
- term.init_object(dev, dev.name() + "." + name);
- dev.m_terminals.push_back(obj.name());
+ static_cast<device_t &>(term.device()).m_terminals.push_back(obj.name());
}
-
if (!m_terminals.add(term.name(), &term))
- log().fatal("Error adding {1} {2} to terminal list\n", objtype_as_astr(term), term.name());
- log().debug("{1} {2}\n", objtype_as_astr(term), name);
+ log().fatal("Error adding {1} {2} to terminal list\n", objtype_as_astr(obj), obj.name());
+ log().debug("{1} {2}\n", objtype_as_astr(obj), obj.name());
}
break;
case terminal_t::NET:
@@ -297,10 +278,10 @@ void setup_t::register_object(device_t &dev, const pstring &name, object_t &obj)
}
break;
case terminal_t::DEVICE:
- log().fatal("Device registration not yet supported - {1}\n", name);
+ log().fatal("Device registration not yet supported - {1}\n", obj.name());
break;
case terminal_t::QUEUE:
- log().fatal("QUEUE registration not yet supported - {1}\n", name);
+ log().fatal("QUEUE registration not yet supported - {1}\n", obj.name());
break;
}
}