summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/input_merger.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/input_merger.h')
-rw-r--r--src/devices/machine/input_merger.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/devices/machine/input_merger.h b/src/devices/machine/input_merger.h
index aa5e66cc1f1..053118f72e3 100644
--- a/src/devices/machine/input_merger.h
+++ b/src/devices/machine/input_merger.h
@@ -4,9 +4,6 @@
Input Merger
- Used to connect multiple lines to a single device input while
- keeping it pulled high or low
-
***************************************************************************/
#ifndef MAME_MACHINE_INPUT_MERGER_H
@@ -22,13 +19,15 @@
class input_merger_device : public device_t
{
public:
- // callback
+ virtual ~input_merger_device() override;
+
+ // configuration
auto output_handler() { return m_output_handler.bind(); }
// input lines
- template <unsigned Bit> DECLARE_WRITE_LINE_MEMBER(in_w) { static_assert(Bit < 32, "invalid bit"); machine().scheduler().synchronize(timer_expired_delegate(FUNC(input_merger_device::update_state), this), (Bit << 1) | (state ? 1U : 0U)); }
- template <unsigned Bit> DECLARE_WRITE8_MEMBER(in_set) { in_w<Bit>(1); }
- template <unsigned Bit> DECLARE_WRITE8_MEMBER(in_clear) { in_w<Bit>(0); }
+ template <unsigned Bit> void in_w(int state) { static_assert(Bit < 32, "invalid bit"); machine().scheduler().synchronize(timer_expired_delegate(FUNC(input_merger_device::update_state), this), (Bit << 1) | (state ? 1U : 0U)); }
+ template <unsigned Bit> void in_set(u8 data = 0) { in_w<Bit>(1); }
+ template <unsigned Bit> void in_clear(u8 data = 0) { in_w<Bit>(0); }
protected:
// constructor/destructor
@@ -41,16 +40,16 @@ protected:
u32 initval,
u32 xorval,
int active);
- virtual ~input_merger_device() override;
// device-level overrides
- virtual void device_start() override;
+ virtual void device_start() override ATTR_COLD;
TIMER_CALLBACK_MEMBER(update_state);
devcb_write_line m_output_handler;
- u32 const m_initval, m_xorval;
+ u32 const m_initval;
+ u32 const m_xorval;
int const m_active;
u32 m_state;
};