diff options
Diffstat (limited to 'src/devices/machine/input_merger.h')
-rw-r--r-- | src/devices/machine/input_merger.h | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/devices/machine/input_merger.h b/src/devices/machine/input_merger.h index 10c400b4a74..744b342796d 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,14 @@ class input_merger_device : public device_t { public: - // callback + // configuration auto output_handler() { return m_output_handler.bind(); } + auto &initial_state(u32 val) { m_initval = val; return *this; } // initial input pin(s) state, be wary about the unused pins // 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> void in_set(u8 data) { in_w<Bit>(1); } - template <unsigned Bit> void in_clear(u8 data) { in_w<Bit>(0); } + 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 @@ -50,7 +48,8 @@ protected: devcb_write_line m_output_handler; - u32 const m_initval, m_xorval; + u32 m_initval; + u32 const m_xorval; int const m_active; u32 m_state; }; |