summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/adc083x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/adc083x.h')
-rw-r--r--src/devices/machine/adc083x.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/devices/machine/adc083x.h b/src/devices/machine/adc083x.h
index 9d7012a2b27..e7a390e106f 100644
--- a/src/devices/machine/adc083x.h
+++ b/src/devices/machine/adc083x.h
@@ -15,15 +15,6 @@
/***************************************************************************
- TYPE DEFINITIONS
-***************************************************************************/
-
-#define ADC083X_INPUT_CB(name) double name(uint8_t input)
-
-#define MCFG_ADC083X_INPUT_CB(_class, _method) \
- downcast<adc083x_device &>(*device).set_input_callback(adc083x_device::input_delegate(&_class::_method, #_class "::" #_method, this));
-
-/***************************************************************************
CONSTANTS
***************************************************************************/
@@ -49,7 +40,15 @@ public:
typedef device_delegate<double (uint8_t input)> input_delegate;
// configuration helpers
- template <typename Object> void set_input_callback(Object &&cb) { m_input_callback = std::forward<Object>(cb); }
+ void set_input_callback(input_delegate callback) { m_input_callback = callback; }
+ template <class FunctionClass> void set_input_callback(const char *devname, double (FunctionClass::*callback)(uint8_t), const char *name)
+ {
+ set_input_callback(input_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr)));
+ }
+ template <class FunctionClass> void set_input_callback(double (FunctionClass::*callback)(uint8_t), const char *name)
+ {
+ set_input_callback(input_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)));
+ }
DECLARE_WRITE_LINE_MEMBER( cs_write );
DECLARE_WRITE_LINE_MEMBER( clk_write );