summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/analog/nld_switches.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/analog/nld_switches.cpp')
-rw-r--r--src/lib/netlist/analog/nld_switches.cpp52
1 files changed, 28 insertions, 24 deletions
diff --git a/src/lib/netlist/analog/nld_switches.cpp b/src/lib/netlist/analog/nld_switches.cpp
index 169d6465969..6b87279e398 100644
--- a/src/lib/netlist/analog/nld_switches.cpp
+++ b/src/lib/netlist/analog/nld_switches.cpp
@@ -19,65 +19,69 @@ namespace netlist
// SWITCH
// ----------------------------------------------------------------------------------------
- NETLIB_BASE_OBJECT(switch1)
+ class nld_switch1 : public base_device_t
{
- NETLIB_CONSTRUCTOR(switch1)
+ public:
+ nld_switch1(constructor_param_t data)
+ : base_device_t(data)
, m_R(*this, "R")
, m_POS(*this, "POS", false)
{
- register_sub_alias("1", m_R.P());
- register_sub_alias("2", m_R.N());
+ register_sub_alias("1", m_R().P());
+ register_sub_alias("2", m_R().N());
}
NETLIB_RESETI()
{
- m_R.set_R(R_OFF);
+ m_R().set_R(R_OFF);
}
NETLIB_UPDATE_PARAMI()
{
- m_R.change_state([this]()
+ m_R().change_state([this]()
{
- m_R.set_R(m_POS() ? R_ON : R_OFF);
+ m_R().set_R(m_POS() ? R_ON : R_OFF);
});
}
private:
- analog::NETLIB_SUB(R_base) m_R;
- param_logic_t m_POS;
+ NETLIB_SUB_NS(analog, R_base) m_R;
+ param_logic_t m_POS;
};
// ----------------------------------------------------------------------------------------
// SWITCH2
// ----------------------------------------------------------------------------------------
- NETLIB_BASE_OBJECT(switch2)
+ class nld_switch2 : public base_device_t
{
- NETLIB_CONSTRUCTOR(switch2)
+ public:
+ nld_switch2(constructor_param_t data)
+ : base_device_t(data)
, m_R1(*this, "R1")
, m_R2(*this, "R2")
, m_POS(*this, "POS", false)
{
- connect(m_R1.N(), m_R2.N());
+ connect(m_R1().N(), m_R2().N());
- register_sub_alias("1", m_R1.P());
- register_sub_alias("2", m_R2.P());
+ register_sub_alias("1", m_R1().P());
+ register_sub_alias("2", m_R2().P());
- register_sub_alias("Q", m_R1.N());
+ register_sub_alias("Q", m_R1().N());
}
NETLIB_RESETI();
NETLIB_UPDATE_PARAMI();
private:
- analog::NETLIB_SUB(R_base) m_R1;
- analog::NETLIB_SUB(R_base) m_R2;
- param_logic_t m_POS;
+ NETLIB_SUB_NS(analog, R_base) m_R1;
+ NETLIB_SUB_NS(analog, R_base) m_R2;
+ param_logic_t m_POS;
};
NETLIB_RESET(switch2)
{
- m_R1.set_R(R_ON);
- m_R2.set_R(R_OFF);
+ m_R1().set_R(R_ON);
+ m_R2().set_R(R_OFF);
}
#ifdef FIXMELATER
@@ -103,12 +107,12 @@ namespace netlist
nl_fptype r1 = m_POS() ? R_OFF : R_ON;
nl_fptype r2 = m_POS() ? R_ON : R_OFF;
- if (m_R1.solver() == m_R2.solver())
- m_R1.change_state([this, &r1, &r2]() { m_R1.set_R(r1); m_R2.set_R(r2); });
+ if (m_R1().solver() == m_R2().solver())
+ m_R1().change_state([this, &r1, &r2]() { m_R1().set_R(r1); m_R2().set_R(r2); });
else
{
- m_R1.change_state([this, &r1]() { m_R1.set_R(r1); });
- m_R2.change_state([this, &r2]() { m_R2.set_R(r2); });
+ m_R1().change_state([this, &r1]() { m_R1().set_R(r1); });
+ m_R2().change_state([this, &r2]() { m_R2().set_R(r2); });
}
}