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.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/devices/machine/input_merger.h b/src/devices/machine/input_merger.h
index aa5e66cc1f1..53af1a38cfd 100644
--- a/src/devices/machine/input_merger.h
+++ b/src/devices/machine/input_merger.h
@@ -15,6 +15,27 @@
#pragma once
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_INPUT_MERGER_ANY_HIGH(_tag) \
+ MCFG_DEVICE_ADD(_tag, INPUT_MERGER_ANY_HIGH, 0)
+
+#define MCFG_INPUT_MERGER_ALL_HIGH(_tag) \
+ MCFG_DEVICE_ADD(_tag, INPUT_MERGER_ALL_HIGH, 0)
+
+#define MCFG_INPUT_MERGER_ANY_LOW(_tag) \
+ MCFG_DEVICE_ADD(_tag, INPUT_MERGER_ANY_LOW, 0)
+
+#define MCFG_INPUT_MERGER_ALL_LOW(_tag) \
+ MCFG_DEVICE_ADD(_tag, INPUT_MERGER_ALL_LOW, 0)
+
+#define MCFG_INPUT_MERGER_OUTPUT_HANDLER(_devcb) \
+ downcast<input_merger_device &>(*device).set_output_handler(DEVCB_##_devcb);
+
+
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -23,6 +44,7 @@ class input_merger_device : public device_t
{
public:
// callback
+ template <class Object> devcb_base &set_output_handler(Object &&cb) { return m_output_handler.set_callback(std::forward<Object>(cb)); }
auto output_handler() { return m_output_handler.bind(); }
// input lines