summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/cdp1864.h
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-08-17 20:14:49 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-08-17 20:17:53 -0400
commit85ada1a28b894e1d0bd5a131269df95789cb25fd (patch)
treecd6f8885f4e5128ef864c50d84a8b98312266a30 /src/devices/sound/cdp1864.h
parentc4c6a68d4b2083ebd5df58b6a38e20ab5e5119be (diff)
cdp1864: Partial MCFG elimination (all callbacks are now devcb3) (nw)
Diffstat (limited to 'src/devices/sound/cdp1864.h')
-rw-r--r--src/devices/sound/cdp1864.h45
1 files changed, 11 insertions, 34 deletions
diff --git a/src/devices/sound/cdp1864.h b/src/devices/sound/cdp1864.h
index e1aec5babea..928196e62e1 100644
--- a/src/devices/sound/cdp1864.h
+++ b/src/devices/sound/cdp1864.h
@@ -45,38 +45,14 @@
//**************************************************************************
-// MACROS / CONSTANTS
-//**************************************************************************
-
-#define CDP1864_CLOCK XTAL(1'750'000)
-
-
-
-//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
-#define MCFG_CDP1864_ADD(_tag, _screen_tag, _clock, _inlace, _irq, _dma_out, _efx, _hsync, _rdata, _bdata, _gdata) \
- MCFG_DEVICE_ADD(_tag, CDP1864, _clock) \
- MCFG_VIDEO_SET_SCREEN(_screen_tag) \
- downcast<cdp1864_device *>(device)->set_inlace_callback(DEVCB_##_inlace); \
- downcast<cdp1864_device *>(device)->set_irq_callback(DEVCB_##_irq); \
- downcast<cdp1864_device *>(device)->set_dma_out_callback(DEVCB_##_dma_out); \
- downcast<cdp1864_device *>(device)->set_efx_callback(DEVCB_##_efx); \
- downcast<cdp1864_device *>(device)->set_hsync_callback(DEVCB_##_hsync); \
- downcast<cdp1864_device *>(device)->set_rdata_callback(DEVCB_##_rdata); \
- downcast<cdp1864_device *>(device)->set_bdata_callback(DEVCB_##_bdata); \
- downcast<cdp1864_device *>(device)->set_gdata_callback(DEVCB_##_gdata);
-
-#define MCFG_CDP1864_CHROMINANCE(_r, _b, _g, _bkg) \
- downcast<cdp1864_device *>(device)->set_chrominance_resistors(_r, _b, _g, _bkg);
-
#define MCFG_CDP1864_SCREEN_ADD(_tag, _clock) \
MCFG_SCREEN_ADD(_tag, RASTER) \
MCFG_SCREEN_RAW_PARAMS(_clock, cdp1864_device::SCREEN_WIDTH, cdp1864_device::HBLANK_END, cdp1864_device::HBLANK_START, cdp1864_device::TOTAL_SCANLINES, cdp1864_device::SCANLINE_VBLANK_END, cdp1864_device::SCANLINE_VBLANK_START)
-
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -117,15 +93,16 @@ public:
// construction/destruction
cdp1864_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> void set_inlace_callback(Object &&inlace) { m_read_inlace.set_callback(std::forward<Object>(inlace)); }
- template <class Object> void set_irq_callback(Object &&irq) { m_write_irq.set_callback(std::forward<Object>(irq)); }
- template <class Object> void set_dma_out_callback(Object &&dma_out) { m_write_dma_out.set_callback(std::forward<Object>(dma_out)); }
- template <class Object> void set_efx_callback(Object &&efx) { m_write_efx.set_callback(std::forward<Object>(efx)); }
- template <class Object> void set_hsync_callback(Object &&hsync) { m_write_hsync.set_callback(std::forward<Object>(hsync)); }
- template <class Object> void set_rdata_callback(Object &&rdata) { m_read_rdata.set_callback(std::forward<Object>(rdata)); }
- template <class Object> void set_bdata_callback(Object &&bdata) { m_read_bdata.set_callback(std::forward<Object>(bdata)); }
- template <class Object> void set_gdata_callback(Object &&gdata) { m_read_gdata.set_callback(std::forward<Object>(gdata)); }
- void set_chrominance_resistors(double r, double b, double g, double bkg) { m_chr_r = r; m_chr_b = b; m_chr_g = g; m_chr_bkg = bkg; }
+ auto inlace_cb() { return m_read_inlace.bind(); }
+ auto int_cb() { return m_write_int.bind(); }
+ auto dma_out_cb() { return m_write_dma_out.bind(); }
+ auto efx_cb() { return m_write_efx.bind(); }
+ auto hsync_cb() { return m_write_hsync.bind(); }
+ auto rdata_cb() { return m_read_rdata.bind(); }
+ auto bdata_cb() { return m_read_bdata.bind(); }
+ auto gdata_cb() { return m_read_gdata.bind(); }
+
+ void set_chrominance(double r, double b, double g, double bkg) { m_chr_r = r; m_chr_b = b; m_chr_g = g; m_chr_bkg = bkg; }
DECLARE_READ8_MEMBER( dispon_r );
DECLARE_READ8_MEMBER( dispoff_r );
@@ -167,7 +144,7 @@ private:
devcb_read_line m_read_rdata;
devcb_read_line m_read_bdata;
devcb_read_line m_read_gdata;
- devcb_write_line m_write_irq;
+ devcb_write_line m_write_int;
devcb_write_line m_write_dma_out;
devcb_write_line m_write_efx;
devcb_write_line m_write_hsync;