summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/adc1038.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/adc1038.h')
-rw-r--r--src/devices/machine/adc1038.h20
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