diff --git a/src/emu/bus/midi/midi.c b/src/emu/bus/midi/midi.c index 5021f82f440..d040f2d606b 100644 --- a/src/emu/bus/midi/midi.c +++ b/src/emu/bus/midi/midi.c @@ -26,6 +26,7 @@ midi_port_device::~midi_port_device() void midi_port_device::device_config_complete() { m_dev = dynamic_cast(get_card_device()); + m_dev->set_my_port_device(this); } void midi_port_device::device_start() @@ -38,3 +39,4 @@ WRITE_LINE_MEMBER( midi_port_device::write_txd ) if(m_dev) m_dev->input_txd(state); } + diff --git a/src/emu/bus/midi/midi.h b/src/emu/bus/midi/midi.h index 7b386ac9de4..a8b74212e89 100644 --- a/src/emu/bus/midi/midi.h +++ b/src/emu/bus/midi/midi.h @@ -51,6 +51,8 @@ public: virtual DECLARE_WRITE_LINE_MEMBER( input_txd ) {} DECLARE_WRITE_LINE_MEMBER( output_rxd ) { m_port->m_rxd = state; m_port->m_rxd_handler(state); } + void set_my_port_device(midi_port_device *parent) { m_port = parent; } + protected: midi_port_device *m_port; };