diff options
Diffstat (limited to 'src/devices/machine/74161.h')
-rw-r--r-- | src/devices/machine/74161.h | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/src/devices/machine/74161.h b/src/devices/machine/74161.h index 932428bdb78..503617b1635 100644 --- a/src/devices/machine/74161.h +++ b/src/devices/machine/74161.h @@ -57,35 +57,15 @@ #pragma once - -#define MCFG_7416x_QA_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_qa_cb(DEVCB_##_devcb); - -#define MCFG_7416x_QB_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_qb_cb(DEVCB_##_devcb); - -#define MCFG_7416x_QC_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_qc_cb(DEVCB_##_devcb); - -#define MCFG_7416x_QD_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_qd_cb(DEVCB_##_devcb); - -#define MCFG_7416x_OUTPUT_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_output_cb(DEVCB_##_devcb); - -#define MCFG_7416x_TC_CB(_devcb) \ - downcast<ttl7416x_device &>(*device).set_tc_cb(DEVCB_##_devcb); - class ttl7416x_device : public device_t { public: - // static configuration helpers - template <class Object> devcb_base &set_qa_cb(Object &&cb) { return m_qa_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_qb_cb(Object &&cb) { return m_qb_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_qc_cb(Object &&cb) { return m_qc_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_qd_cb(Object &&cb) { return m_qd_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_output_cb(Object &&cb) { return m_output_func.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_tc_cb(Object &&cb) { return m_tc_func.set_callback(std::forward<Object>(cb)); } + auto qa_cb() { return m_qa_func.bind(); } + auto qb_cb() { return m_qb_func.bind(); } + auto qc_cb() { return m_qc_func.bind(); } + auto qd_cb() { return m_qd_func.bind(); } + auto out_cb() { return m_output_func.bind(); } + auto tc_cb() { return m_tc_func.bind(); } // public interfaces DECLARE_WRITE_LINE_MEMBER( clear_w ); |