diff options
Diffstat (limited to 'src/devices/machine/input_merger.h')
-rw-r--r-- | src/devices/machine/input_merger.h | 19 |
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; }; |