summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/sound/wave.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/sound/wave.c')
-rw-r--r--src/emu/sound/wave.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/emu/sound/wave.c b/src/emu/sound/wave.c
index 6728b7cafab..76f9bdda8d6 100644
--- a/src/emu/sound/wave.c
+++ b/src/emu/sound/wave.c
@@ -16,7 +16,6 @@
****************************************************************************/
#include "emu.h"
-#include "imagedev/cassette.h"
#include "wave.h"
#define ALWAYS_PLAY_SOUND 0
@@ -60,6 +59,7 @@ void wave_device::device_start()
machine().sound().stream_alloc(*this, 0, 2, machine().sample_rate());
else
machine().sound().stream_alloc(*this, 0, 1, machine().sample_rate());
+ m_cass = machine().device<cassette_image_device>(m_cassette_tag);
}
//-------------------------------------------------
@@ -68,8 +68,6 @@ void wave_device::device_start()
void wave_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples)
{
- cassette_image_device *cass = machine().device<cassette_image_device>(m_cassette_tag);
- cassette_image *cassette;
cassette_state state;
double time_index;
double duration;
@@ -77,20 +75,20 @@ void wave_device::sound_stream_update(sound_stream &stream, stream_sample_t **in
stream_sample_t *right_buffer = NULL;
int i;
- speaker_device_iterator spkiter(cass->machine().root_device());
+ speaker_device_iterator spkiter(m_cass->machine().root_device());
int speakers = spkiter.count();
if (speakers>1)
right_buffer = outputs[1];
- state = cass->get_state();
+ state = m_cass->get_state();
state = (cassette_state)(state & (CASSETTE_MASK_UISTATE | CASSETTE_MASK_MOTOR | CASSETTE_MASK_SPEAKER));
- if (cass->exists() && (ALWAYS_PLAY_SOUND || (state == (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED))))
+ if (m_cass->exists() && (ALWAYS_PLAY_SOUND || (state == (CASSETTE_PLAY | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_ENABLED))))
{
- cassette = cass->get_image();
- time_index = cass->get_position();
- duration = ((double) samples) / cass->machine().sample_rate();
+ cassette_image *cassette = m_cass->get_image();
+ time_index = m_cass->get_position();
+ duration = ((double) samples) / m_cass->machine().sample_rate();
cassette_get_samples(cassette, 0, time_index, duration, samples, 2, left_buffer, CASSETTE_WAVEFORM_16BIT);
if (speakers > 1)