diff options
Diffstat (limited to 'src/mame/audio/timeplt.cpp')
-rw-r--r-- | src/mame/audio/timeplt.cpp | 29 |
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) |