summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/netlist/nl_factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/netlist/nl_factory.c')
-rw-r--r--src/emu/netlist/nl_factory.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/emu/netlist/nl_factory.c b/src/emu/netlist/nl_factory.c
index dc097c53069..2a2bf80c3a1 100644
--- a/src/emu/netlist/nl_factory.c
+++ b/src/emu/netlist/nl_factory.c
@@ -50,6 +50,27 @@
#include "nl_factory.h"
#include "nl_setup.h"
+// ----------------------------------------------------------------------------------------
+// net_device_t_base_factory
+// ----------------------------------------------------------------------------------------
+
+ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::term_param_list()
+{
+ if (m_def_param.startsWith("+"))
+ return nl_util::split(m_def_param.substr(1), ",");
+ else
+ return nl_util::pstring_list();
+}
+
+ATTR_COLD const nl_util::pstring_list net_device_t_base_factory::def_params()
+{
+ if (m_def_param.startsWith("+") || m_def_param.equals("-"))
+ return nl_util::pstring_list();
+ else
+ return nl_util::split(m_def_param, ",");
+}
+
+
netlist_factory_t::netlist_factory_t()
{
}
@@ -64,7 +85,7 @@ netlist_factory_t::~netlist_factory_t()
m_list.clear();
}
-netlist_device_t *netlist_factory_t::new_device_by_classname(const pstring &classname, netlist_setup_t &setup) const
+netlist_device_t *netlist_factory_t::new_device_by_classname(const pstring &classname) const
{
for (net_device_t_base_factory * const *e = m_list.first(); e != NULL; e = m_list.next(e))
{
@@ -76,7 +97,6 @@ netlist_device_t *netlist_factory_t::new_device_by_classname(const pstring &clas
}
p++;
}
- setup.netlist().error("Class %s not found!\n", classname.cstr());
return NULL; // appease code analysis
}