summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/netlist.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-06-01 19:58:07 +0200
committer couriersud <couriersud@gmx.org>2020-06-01 19:59:52 +0200
commit3fd176a7a6700a1818059df4faf58e57d523119b (patch)
tree7ab1286aad65b0d13cb41571e902472396b8d43c /src/devices/machine/netlist.h
parentefa12efc37bebe169b17833bcbe5f817dd27ea43 (diff)
netlist: device factory enhancements. (nw)
Factory elements can now pass additional parameters to device constructors. This makes the design of interface objects like analog callbacks easier. The change also allowed to remove some "deep" calls into the core from the MAME interface in netlist.h
Diffstat (limited to 'src/devices/machine/netlist.h')
-rw-r--r--src/devices/machine/netlist.h27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h
index dfd67a88afe..062a61edffa 100644
--- a/src/devices/machine/netlist.h
+++ b/src/devices/machine/netlist.h
@@ -263,10 +263,11 @@ class netlist_mame_sub_interface
{
public:
// construction/destruction
- netlist_mame_sub_interface(device_t &aowner)
+ netlist_mame_sub_interface(device_t &owner)
: m_offset(0.0), m_mult(1.0)
- , m_owner(dynamic_cast<netlist_mame_device *>(&aowner))
- , m_sound(dynamic_cast<netlist_mame_sound_device *>(&aowner))
+ , m_owner(dynamic_cast<netlist_mame_device *>(&owner))
+ , m_sound(dynamic_cast<netlist_mame_sound_device *>(&owner))
+ , m_cpu(dynamic_cast<netlist_mame_cpu_device *>(&owner))
{
}
@@ -274,7 +275,7 @@ public:
{
}
- virtual void custom_netlist_additions(netlist::netlist_state_t &nlstate) { }
+ virtual void custom_netlist_additions(netlist::nlparse_t &parser) { }
virtual void pre_parse_action(netlist::nlparse_t &parser) { }
virtual void validity_helper(validity_checker &valid,
netlist::netlist_state_t &nlstate) const { }
@@ -292,13 +293,16 @@ public:
void set_mult_offset(const double mult, const double offset);
netlist_mame_sound_device *sound() { return m_sound;}
+ netlist_mame_cpu_device *cpu() { return m_cpu;}
+
protected:
double m_offset;
double m_mult;
private:
- netlist_mame_device *const m_owner;
+ netlist_mame_device *const m_owner;
netlist_mame_sound_device *const m_sound;
+ netlist_mame_cpu_device *const m_cpu;
};
// ----------------------------------------------------------------------------------------
@@ -357,7 +361,8 @@ public:
// construction/destruction
netlist_mame_analog_output_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
- template <typename... T> void set_params(const char *in_name, T &&... args)
+ template <typename... T>
+ void set_params(const char *in_name, T &&... args)
{
m_in = in_name;
m_delegate.set(std::forward<T>(args)...);
@@ -367,7 +372,8 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void custom_netlist_additions(netlist::netlist_state_t &nlstate) override;
+ virtual void pre_parse_action(netlist::nlparse_t &parser) override;
+ virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
private:
const char *m_in;
@@ -395,7 +401,8 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void custom_netlist_additions(netlist::netlist_state_t &nlstate) override;
+ virtual void pre_parse_action(netlist::nlparse_t &parser) override;
+ virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
private:
const char *m_in;
@@ -531,7 +538,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void custom_netlist_additions(netlist::netlist_state_t &nlstate) override;
+ virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
private:
uint32_t m_channel;
const char *m_param_name;
@@ -557,7 +564,7 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void custom_netlist_additions(netlist::netlist_state_t &nlstate) override;
+ virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
private:
uint32_t m_channel;