diff options
author | 2018-01-13 02:05:54 +1100 | |
---|---|---|
committer | 2018-01-13 02:06:27 +1100 | |
commit | ba5715596ae3e88664ed32ea3bd32fd898902c73 (patch) | |
tree | ab43d9837f14cccbc5c51f220823bff29968d37c /src/emu/sound.cpp | |
parent | 45854ff96c87baf0c5be3b5bf46fbdb28831aeb4 (diff) |
This causes huge changes in behaviour that can't be hand-waved away.
Revert "Removal of voltage_regulator_device (nw)"
This reverts commit 1af133752a05079060c462e372c369ad0b7296ee.
Revert "New way to provide DAC reference inputs (nw)"
This reverts commit 1c6a7ab40ccd23b753777204c7a289e830b2adcb.
Diffstat (limited to 'src/emu/sound.cpp')
-rw-r--r-- | src/emu/sound.cpp | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp index 5fcbaa0ee93..be16a3476e3 100644 --- a/src/emu/sound.cpp +++ b/src/emu/sound.cpp @@ -225,10 +225,10 @@ int sound_stream::input_source_outputnum(int inputnum) const // set_input - configure a stream's input //------------------------------------------------- -void sound_stream::set_input(int index, sound_stream *input_stream, int output_index, float gain, stream_sample_t level) +void sound_stream::set_input(int index, sound_stream *input_stream, int output_index, float gain) { - VPRINTF(("stream_set_input(%p, '%s', %d, %p, %d, %f, %d)\n", (void *)this, m_device.tag(), - index, (void *)input_stream, output_index, (double) gain, level)); + VPRINTF(("stream_set_input(%p, '%s', %d, %p, %d, %f)\n", (void *)this, m_device.tag(), + index, (void *)input_stream, output_index, (double) gain)); // make sure it's a valid input if (index >= m_input.size()) @@ -247,7 +247,6 @@ void sound_stream::set_input(int index, sound_stream *input_stream, int output_i input.m_source = (input_stream != nullptr) ? &input_stream->m_output[output_index] : nullptr; input.m_gain = int(0x100 * gain); input.m_user_gain = 0x100; - input.m_default_level = level; // update the dependent info if (input.m_source != nullptr) @@ -443,7 +442,7 @@ void sound_stream::apply_sample_rate_changes() // clear out the buffer for (auto & elem : m_output) - std::fill(&elem.m_buffer[0], &elem.m_buffer[m_max_samples_per_update], 0); + memset(&elem.m_buffer[0], 0, m_max_samples_per_update * sizeof(elem.m_buffer[0])); } @@ -538,8 +537,11 @@ void sound_stream::allocate_resample_buffers() m_resample_bufalloc = bufsize; // iterate over outputs and realloc their buffers - for (auto & elem : m_input) - elem.m_resample.resize(m_resample_bufalloc, elem.m_default_level); + for (auto & elem : m_input) { + unsigned int old_size = elem.m_resample.size(); + elem.m_resample.resize(m_resample_bufalloc); + memset(&elem.m_resample[old_size], 0, (m_resample_bufalloc - old_size)*sizeof(elem.m_resample[0])); + } } } @@ -559,8 +561,11 @@ void sound_stream::allocate_output_buffers() m_output_bufalloc = bufsize; // iterate over outputs and realloc their buffers - for (auto & elem : m_output) - elem.m_buffer.resize(m_output_bufalloc, 0); + for (auto & elem : m_output) { + unsigned int old_size = elem.m_buffer.size(); + elem.m_buffer.resize(m_output_bufalloc); + memset(&elem.m_buffer[old_size], 0, (m_output_bufalloc - old_size)*sizeof(elem.m_buffer[0])); + } } } @@ -576,7 +581,7 @@ void sound_stream::postload() // make sure our output buffers are fully cleared for (auto & elem : m_output) - std::fill(&elem.m_buffer[0], &elem.m_buffer[m_output_bufalloc], 0); + memset(&elem.m_buffer[0], 0, m_output_bufalloc * sizeof(elem.m_buffer[0])); // recompute the sample indexes to make sense m_output_sampindex = m_device.machine().sound().last_update().attoseconds() / m_attoseconds_per_sample; @@ -649,7 +654,7 @@ stream_sample_t *sound_stream::generate_resampled_data(stream_input &input, u32 stream_sample_t *dest = &input.m_resample[0]; if (input.m_source == nullptr) { - std::fill(&dest[0], &dest[numsamples], input.m_default_level); + memset(dest, 0, numsamples * sizeof(*dest)); return &input.m_resample[0]; } @@ -771,8 +776,7 @@ sound_stream::stream_input::stream_input() : m_source(nullptr), m_latency_attoseconds(0), m_gain(0x100), - m_user_gain(0x100), - m_default_level(0) + m_user_gain(0x100) { } |