summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/audio/timeplt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/audio/timeplt.cpp')
-rw-r--r--src/mame/audio/timeplt.cpp29
1 files changed, 12 insertions, 17 deletions
diff --git a/src/mame/audio/timeplt.cpp b/src/mame/audio/timeplt.cpp
index 8199f02b418..d240998c957 100644
--- a/src/mame/audio/timeplt.cpp
+++ b/src/mame/audio/timeplt.cpp
@@ -28,6 +28,9 @@ DEFINE_DEVICE_TYPE(TIMEPLT_AUDIO, timeplt_audio_device, "timplt_audio", "Time Pi
timeplt_audio_device::timeplt_audio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, TIMEPLT_AUDIO, tag, owner, clock)
, device_sound_interface(mconfig, *this)
+ , m_soundcpu(*this, "tpsound")
+ , m_filter_0(*this, "filter.0.%u", 0)
+ , m_filter_1(*this, "filter.1.%u", 0)
, m_last_irq_state(0)
{
}
@@ -38,14 +41,6 @@ timeplt_audio_device::timeplt_audio_device(const machine_config &mconfig, const
void timeplt_audio_device::device_start()
{
- m_soundcpu = machine().device<cpu_device>("tpsound");
- m_filter_0_0 = machine().device("filter.0.0");
- m_filter_0_1 = machine().device("filter.0.1");
- m_filter_0_2 = machine().device("filter.0.2");
- m_filter_1_0 = machine().device("filter.1.0");
- m_filter_1_1 = machine().device("filter.1.1");
- m_filter_1_2 = machine().device("filter.1.2");
-
m_last_irq_state = 0;
save_item(NAME(m_last_irq_state));
}
@@ -92,7 +87,7 @@ READ8_MEMBER( timeplt_audio_device::portB_r )
*
*************************************/
-void timeplt_audio_device::filter_w( device_t *device, int data )
+void timeplt_audio_device::filter_w(filter_rc_device &device, int data)
{
int C = 0;
@@ -101,18 +96,18 @@ void timeplt_audio_device::filter_w( device_t *device, int data )
if (data & 2)
C += 47000; /* 47000pF = 0.047uF */
- downcast<filter_rc_device*>(device)->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 5100, 0, CAP_P(C));
+ device.filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 5100, 0, CAP_P(C));
}
WRITE8_MEMBER( timeplt_audio_device::filter_w )
{
- filter_w(m_filter_1_0, (offset >> 0) & 3);
- filter_w(m_filter_1_1, (offset >> 2) & 3);
- filter_w(m_filter_1_2, (offset >> 4) & 3);
- filter_w(m_filter_0_0, (offset >> 6) & 3);
- filter_w(m_filter_0_1, (offset >> 8) & 3);
- filter_w(m_filter_0_2, (offset >> 10) & 3);
+ filter_w(*m_filter_1[0], (offset >> 0) & 3);
+ filter_w(*m_filter_1[1], (offset >> 2) & 3);
+ filter_w(*m_filter_1[2], (offset >> 4) & 3);
+ filter_w(*m_filter_0[0], (offset >> 6) & 3);
+ filter_w(*m_filter_0[1], (offset >> 8) & 3);
+ filter_w(*m_filter_0[2], (offset >> 10) & 3);
}
@@ -188,7 +183,7 @@ MACHINE_CONFIG_START(timeplt_audio_device::timeplt_sound)
MCFG_SOUND_ADD("ay1", AY8910, MASTER_CLOCK/8)
MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("^soundlatch", generic_latch_8_device, read))
- MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("timeplt_audio", timeplt_audio_device, portB_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(timeplt_audio_device, portB_r))
MCFG_SOUND_ROUTE(0, "filter.0.0", 0.60)
MCFG_SOUND_ROUTE(1, "filter.0.1", 0.60)
MCFG_SOUND_ROUTE(2, "filter.0.2", 0.60)