summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/netlist.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/netlist.h')
-rw-r--r--src/devices/machine/netlist.h61
1 files changed, 33 insertions, 28 deletions
diff --git a/src/devices/machine/netlist.h b/src/devices/machine/netlist.h
index d9153f96cd2..57fc6b05c3a 100644
--- a/src/devices/machine/netlist.h
+++ b/src/devices/machine/netlist.h
@@ -37,13 +37,13 @@ namespace netlist {
// MAME specific configuration
#define NETLIST_LOGIC_PORT_CHANGED(_base, _tag) \
- PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_device, input_changed, 0)
+ PORT_CHANGED_MEMBER(_base ":" _tag, FUNC(netlist_mame_logic_input_device::input_changed), 0)
#define NETLIST_INT_PORT_CHANGED(_base, _tag) \
- PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_logic_input_device, input_changed, 0)
+ PORT_CHANGED_MEMBER(_base ":" _tag, FUNC(netlist_mame_logic_input_device::input_changed), 0)
#define NETLIST_ANALOG_PORT_CHANGED(_base, _tag) \
- PORT_CHANGED_MEMBER(_base ":" _tag, netlist_mame_analog_input_device, input_changed, 0)
+ PORT_CHANGED_MEMBER(_base ":" _tag, FUNC(netlist_mame_analog_input_device::input_changed), 0)
/* This macro can only be called from device member */
@@ -134,9 +134,9 @@ protected:
// device_t overrides
virtual void device_config_complete() override;
virtual void device_validity_check(validity_checker &valid) const override;
- virtual void device_start() override;
- virtual void device_stop() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_stop() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void device_post_load() override;
virtual void device_pre_save() override;
//virtual void device_clock_changed() override;
@@ -198,7 +198,7 @@ protected:
virtual void nl_register_devices(netlist::nlparse_t &parser) const override;
// device_t overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
virtual void device_clock_changed() override;
// device_execute_interface overrides
@@ -249,19 +249,24 @@ private:
// ----------------------------------------------------------------------------------------
// netlist_mame_sound_input_buffer
//
-// This is a wrapper device to provide operator[] on read_stream_view.
+// This is a wrapper device to provide operator[] on an input stream.
// ----------------------------------------------------------------------------------------
-class netlist_mame_sound_input_buffer : public read_stream_view
+class netlist_mame_sound_input_buffer
{
public:
- netlist_mame_sound_input_buffer() :
- read_stream_view() { }
+ std::vector<sound_stream::sample_t> m_buffer;
- netlist_mame_sound_input_buffer(read_stream_view const &src) :
- read_stream_view(src) { }
+ netlist_mame_sound_input_buffer() {}
- stream_buffer::sample_t operator[](std::size_t index) { return get(index); }
+ netlist_mame_sound_input_buffer(sound_stream &stream) {
+ int samples = stream.samples();
+ m_buffer.resize(samples);
+ for (int i=0; i != samples; i++)
+ m_buffer[i] = stream.get(0, i);
+ }
+
+ sound_stream::sample_t operator[](std::size_t index) { return m_buffer[index]; }
};
// ----------------------------------------------------------------------------------------
@@ -300,11 +305,11 @@ protected:
virtual void nl_register_devices(netlist::nlparse_t &parser) const override;
// device_t overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
// device_sound_interface overrides
- virtual void sound_stream_update(sound_stream &stream, std::vector<read_stream_view> const &inputs, std::vector<write_stream_view> &outputs) override;
+ virtual void sound_stream_update(sound_stream &stream) override;
virtual void device_validity_check(validity_checker &valid) const override;
- //virtual void device_reset() override;
+ //virtual void device_reset() override ATTR_COLD;
private:
std::map<int, netlist_mame_stream_output_device *> m_out;
@@ -401,7 +406,7 @@ public:
netlist::netlist_state_t &nlstate) const override;
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
TIMER_CALLBACK_MEMBER(sync_callback);
@@ -433,7 +438,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
virtual void pre_parse_action(netlist::nlparse_t &parser) override;
virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
@@ -462,7 +467,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
virtual void pre_parse_action(netlist::nlparse_t &parser) override;
virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
@@ -502,7 +507,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
TIMER_CALLBACK_MEMBER(sync_callback);
@@ -544,7 +549,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
TIMER_CALLBACK_MEMBER(sync_callback);
@@ -573,7 +578,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
TIMER_CALLBACK_MEMBER(sync_callback);
@@ -602,7 +607,7 @@ public:
protected:
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
private:
uint32_t m_channel;
@@ -634,14 +639,14 @@ public:
m_buffer.clear();
}
- void sound_update_fill(write_stream_view &target);
+ void sound_update_fill(sound_stream &stream, int output);
void set_sample_time(netlist::netlist_time t) { m_sample_time = t; }
protected:
// device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void custom_netlist_additions(netlist::nlparse_t &parser) override;
virtual void pre_parse_action(netlist::nlparse_t &parser) override;
@@ -649,7 +654,7 @@ private:
uint32_t m_channel;
const char * m_out_name;
- std::vector<stream_buffer::sample_t> m_buffer;
+ std::vector<sound_stream::sample_t> m_buffer;
double m_cur;
netlist::netlist_time m_sample_time;