diff options
Diffstat (limited to 'src/devices/machine/adc1038.h')
-rw-r--r-- | src/devices/machine/adc1038.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/devices/machine/adc1038.h b/src/devices/machine/adc1038.h index 968d3fb933f..0149c79a20e 100644 --- a/src/devices/machine/adc1038.h +++ b/src/devices/machine/adc1038.h @@ -33,7 +33,16 @@ public: adc1038_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); template <typename Object> void set_input_callback(Object &&cb) { m_input_cb = std::forward<Object>(cb); } - void set_gti_club_hack(int hack) { m_gticlub_hack = hack; } + template <class FunctionClass> void set_input_callback(const char *devname, int (FunctionClass::*callback)(int), const char *name) + { + set_input_callback(input_delegate(callback, name, devname, static_cast<FunctionClass *>(nullptr))); + } + template <class FunctionClass> void set_input_callback(int (FunctionClass::*callback)(int), const char *name) + { + set_input_callback(input_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); + } + + void set_gti_club_hack(bool hack) { m_gticlub_hack = hack; } DECLARE_READ_LINE_MEMBER( do_read ); DECLARE_READ_LINE_MEMBER( sars_read ); @@ -55,17 +64,10 @@ private: int m_adc_data; int m_sars; - int m_gticlub_hack; + bool m_gticlub_hack; input_delegate m_input_cb; }; DECLARE_DEVICE_TYPE(ADC1038, adc1038_device) - -#define MCFG_ADC1038_INPUT_CB(_class, _method) \ - downcast<adc1038_device &>(*device).set_input_callback(adc1038_device::input_delegate(&_class::_method, #_class "::" #_method, this)); - -#define MCFG_ADC1038_GTIHACK(_hack) \ - downcast<adc1038_device &>(*device).set_gti_club_hack(_hack); - #endif // MAME_MACHINE_ADC1038_H |