diff options
Diffstat (limited to 'src/devices/imagedev/midiout.cpp')
-rw-r--r-- | src/devices/imagedev/midiout.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/devices/imagedev/midiout.cpp b/src/devices/imagedev/midiout.cpp index 3c0613e2015..67efce46f93 100644 --- a/src/devices/imagedev/midiout.cpp +++ b/src/devices/imagedev/midiout.cpp @@ -9,9 +9,11 @@ *********************************************************************/ #include "emu.h" -#include "osdepend.h" #include "midiout.h" +#include "osdepend.h" + + /*************************************************************************** IMPLEMENTATION ***************************************************************************/ @@ -23,10 +25,14 @@ DEFINE_DEVICE_TYPE(MIDIOUT, midiout_device, "midiout", "MIDI Out image device") -------------------------------------------------*/ midiout_device::midiout_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, MIDIOUT, tag, owner, clock), - device_image_interface(mconfig, *this), - device_serial_interface(mconfig, *this), - m_midi(nullptr) + : device_t(mconfig, MIDIOUT, tag, owner, clock) + , device_image_interface(mconfig, *this) + , device_serial_interface(mconfig, *this) + , m_midi() +{ +} + +midiout_device::~midiout_device() { } @@ -36,7 +42,7 @@ midiout_device::midiout_device(const machine_config &mconfig, const char *tag, d void midiout_device::device_start() { - m_midi = nullptr; + m_midi.reset(); } void midiout_device::device_reset() @@ -51,32 +57,24 @@ void midiout_device::device_reset() call_load -------------------------------------------------*/ -image_init_result midiout_device::call_load(void) +std::pair<std::error_condition, std::string> midiout_device::call_load() { - m_midi = machine().osd().create_midi_device(); - - if (!m_midi->open_output(filename())) + m_midi = machine().osd().create_midi_output(filename()); + if (!m_midi) { - global_free(m_midi); - m_midi = nullptr; - return image_init_result::FAIL; + return std::make_pair(image_error::UNSPECIFIED, std::string()); } - return image_init_result::PASS; + return std::make_pair(std::error_condition(), std::string()); } /*------------------------------------------------- call_unload -------------------------------------------------*/ -void midiout_device::call_unload(void) +void midiout_device::call_unload() { - if (m_midi) - { - m_midi->close(); - global_free(m_midi); - m_midi = nullptr; - } + m_midi.reset(); } void midiout_device::rcv_complete() // Rx completed receiving byte |