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.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/devices/machine/input_merger.h b/src/devices/machine/input_merger.h
index 10c400b4a74..073072d0d4b 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,13 @@
class input_merger_device : public device_t
{
public:
- // callback
+ // 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> 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_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
@@ -50,7 +47,8 @@ protected:
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;
};