From de26ba5f0092f9dc943a2d2656372b27d79901b0 Mon Sep 17 00:00:00 2001 From: Achim Settelmeier Date: Sun, 31 May 2009 02:06:31 +0200 Subject: [PATCH] New methods to unsubscribe all readable/writeable ports of a midiPort object. Moved the code to unsubscribe all readable and/or writeable ports to own methods and thus made them publically available to avoid duplicate code. Signed-off-by: Tobias Doerffel --- include/midi_port.h | 8 ++++ src/core/midi/midi_control_listener.cpp | 11 +----- src/core/midi/midi_port.cpp | 52 ++++++++++++++++--------- 3 files changed, 43 insertions(+), 28 deletions(-) diff --git a/include/midi_port.h b/include/midi_port.h index e41cf7e7d..2128e1a1b 100644 --- a/include/midi_port.h +++ b/include/midi_port.h @@ -126,6 +126,14 @@ public: return( m_writablePorts ); } + void unsubscribeAllReadablePorts( void ); + void unsubscribeAllWriteablePorts( void ); + inline void unsubscribeAllPorts( void ) + { + unsubscribeAllReadablePorts(); + unsubscribeAllWriteablePorts(); + } + midiPortMenu * m_readablePortsMenu; midiPortMenu * m_writablePortsMenu; diff --git a/src/core/midi/midi_control_listener.cpp b/src/core/midi/midi_control_listener.cpp index 898028602..22939d953 100644 --- a/src/core/midi/midi_control_listener.cpp +++ b/src/core/midi/midi_control_listener.cpp @@ -256,16 +256,7 @@ void MidiControlListener::readConfiguration() m_actionMapControllers.clear(); // unsubscribe all ports - midiPort::map map = m_port.readablePorts(); - for( midiPort::map::iterator it = map.begin(); - it != map.end(); ++it ) - { - if( it.value() ) - { - m_port.subscribeReadablePort( it.key(), false ); - } - } - + m_port.unsubscribeAllPorts(); // check whether there's a configuration tree at all if( s_configTree.isNull() || ! s_configTree.hasChildNodes() ) diff --git a/src/core/midi/midi_port.cpp b/src/core/midi/midi_port.cpp index f052bcf8e..2bf829220 100644 --- a/src/core/midi/midi_port.cpp +++ b/src/core/midi/midi_port.cpp @@ -304,6 +304,38 @@ void midiPort::subscribeWritablePort( const QString & _port, bool _subscribe ) +void midiPort::unsubscribeAllReadablePorts( void ) +{ + for( map::const_iterator it = m_readablePorts.begin(); + it != m_readablePorts.end(); ++it ) + { + // subscribed? + if( it.value() ) + { + subscribeReadablePort( it.key(), false ); + } + } +} + + + + +void midiPort::unsubscribeAllWriteablePorts( void ) +{ + for( map::const_iterator it = m_writablePorts.begin(); + it != m_writablePorts.end(); ++it ) + { + // subscribed? + if( it.value() ) + { + subscribeWritablePort( it.key(), false ); + } + } +} + + + + void midiPort::updateMidiPortMode( void ) { // this small lookup-table makes everything easier @@ -317,28 +349,12 @@ void midiPort::updateMidiPortMode( void ) // check whether we have to dis-check items in connection-menu if( !inputEnabled() ) { - for( map::const_iterator it = m_readablePorts.begin(); - it != m_readablePorts.end(); ++it ) - { - // subscribed? - if( it.value() ) - { - subscribeReadablePort( it.key(), false ); - } - } + unsubscribeAllReadablePorts(); } if( !outputEnabled() ) { - for( map::const_iterator it = m_writablePorts.begin(); - it != m_writablePorts.end(); ++it ) - { - // subscribed? - if( it.value() ) - { - subscribeWritablePort( it.key(), false ); - } - } + unsubscribeAllWriteablePorts(); } emit readablePortsChanged();