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