diff --git a/src/emu/sound.cpp b/src/emu/sound.cpp index 1b007a303ea..096695935d9 100644 --- a/src/emu/sound.cpp +++ b/src/emu/sound.cpp @@ -163,8 +163,10 @@ float sound_stream::output_gain(int outputnum) const // on a given stream's input //------------------------------------------------- -const char *sound_stream::input_name(int inputnum, std::string &str) const +std::string sound_stream::input_name(int inputnum) const { + std::string str; + // start with our device name and tag assert(inputnum >= 0 && inputnum < m_input.size()); strprintf(str, "%s '%s': ", m_device.name(), m_device.tag()); @@ -191,7 +193,7 @@ const char *sound_stream::input_name(int inputnum, std::string &str) const } } } - return str.c_str(); + return str; } diff --git a/src/emu/sound.h b/src/emu/sound.h index 9480388ac5b..b3584969284 100644 --- a/src/emu/sound.h +++ b/src/emu/sound.h @@ -106,7 +106,7 @@ public: attotime sample_period() const { return attotime(0, m_attoseconds_per_sample); } int input_count() const { return m_input.size(); } int output_count() const { return m_output.size(); } - const char *input_name(int inputnum, std::string &str) const; + std::string input_name(int inputnum) const; device_t *input_source_device(int inputnum) const; int input_source_outputnum(int inputnum) const; float user_gain(int inputnum) const; diff --git a/src/emu/ui/ui.cpp b/src/emu/ui/ui.cpp index 61c610d5a0e..8175df2871e 100644 --- a/src/emu/ui/ui.cpp +++ b/src/emu/ui/ui.cpp @@ -1872,7 +1872,7 @@ static slider_state *slider_init(running_machine &machine) INT32 maxval = 2000; INT32 defval = 1000; - info.stream->input_name(info.inputnum, str); + str.assign(info.stream->input_name(info.inputnum)); str.append(" Volume"); *tailptr = slider_alloc(machine, str.c_str(), 0, defval, maxval, 20, slider_mixervol, (void *)(FPTR)item); tailptr = &(*tailptr)->next;