Add an overload to input_to_stream_input in disound.cpp, fixes the input_gain and set_input_gain functions being unusable on device_mixer_interface type. [Lord Nightmare]

This commit is contained in:
Lord-Nightmare 2020-08-12 18:35:41 -04:00
parent 101ce37315
commit 03f3e1ff42
2 changed files with 30 additions and 1 deletions

View File

@ -394,6 +394,32 @@ device_mixer_interface::~device_mixer_interface()
}
//-------------------------------------------------
// input_to_stream_input - convert a device's
// input index to a stream and the input index
// on that stream
//-------------------------------------------------
sound_stream *device_mixer_interface::input_to_stream_input(int inputnum, int &stream_inputnum) const
{
assert(inputnum >= 0);
// scan the list looking for streams owned by this device
for (auto &stream : device().machine().sound().streams())
if (&stream->device() == &device())
{
if (inputnum < m_auto_allocated_inputs)
{
stream_inputnum = inputnum;
return stream.get();
}
inputnum -= m_auto_allocated_inputs;
}
// not found
return nullptr;
}
//-------------------------------------------------
// interface_pre_start - perform startup prior
// to the device startup

View File

@ -81,7 +81,7 @@ public:
// helpers
int inputs() const;
int outputs() const;
sound_stream *input_to_stream_input(int inputnum, int &stream_inputnum) const;
virtual sound_stream *input_to_stream_input(int inputnum, int &stream_inputnum) const;
sound_stream *output_to_stream_output(int outputnum, int &stream_outputnum) const;
float input_gain(int inputnum) const;
float output_gain(int outputnum) const;
@ -120,6 +120,9 @@ public:
device_mixer_interface(const machine_config &mconfig, device_t &device, int outputs = 1);
virtual ~device_mixer_interface();
// helpers
virtual sound_stream *input_to_stream_input(int inputnum, int &stream_inputnum) const override;
protected:
// optional operation overrides
virtual void interface_pre_start() override;