summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/315_5313.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/315_5313.h')
-rw-r--r--src/devices/video/315_5313.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/devices/video/315_5313.h b/src/devices/video/315_5313.h
index 1d51fa1de91..3661dfb1bce 100644
--- a/src/devices/video/315_5313.h
+++ b/src/devices/video/315_5313.h
@@ -9,6 +9,7 @@
#include "video/315_5124.h"
#include "cpu/m68000/m68000.h"
#include "machine/timer.h"
+#include "sound/sn76496.h"
#define MCFG_SEGA315_5313_IS_PAL(_bool) \
@@ -50,15 +51,22 @@
downcast<sega315_5313_device &>(*device).set_md_32x_scanline_helper(sega315_5313_device::md_32x_scanline_helper_delegate(&_class::_method, #_class "::" #_method, this));
-class sega315_5313_device : public sega315_5124_device
+class sega315_5313_device : public sega315_5124_device, public device_mixer_interface
{
public:
+ template <typename T>
+ sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag)
+ : sega315_5313_device(mconfig, tag, owner, clock)
+ {
+ m_cpu68k.set_tag(std::forward<T>(cpu_tag));
+ }
+
+ sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
typedef device_delegate<void (int x, uint32_t priority, uint16_t &lineptr)> md_32x_scanline_delegate;
typedef device_delegate<void (int scanline, int irq6)> md_32x_interrupt_delegate;
typedef device_delegate<void (int scanline)> md_32x_scanline_helper_delegate;
- sega315_5313_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
-
template <class Object> devcb_base &set_sndirqline_callback(Object &&cb) { return m_sndirqline_callback.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_lv6irqline_callback(Object &&cb) { return m_lv6irqline_callback.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base &set_lv4irqline_callback(Object &&cb) { return m_lv4irqline_callback.set_callback(std::forward<Object>(cb)); }
@@ -215,7 +223,8 @@ private:
std::unique_ptr<uint16_t[]> m_palette_lookup_highlight;
address_space *m_space68k;
- m68000_base_device* m_cpu68k;
+ required_device<m68000_base_device> m_cpu68k;
+ required_device<sn76496_base_device> m_snsnd;
};