diff options
Diffstat (limited to 'RtMidi.cpp')
| -rw-r--r-- | RtMidi.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -241,16 +241,15 @@ void MidiApi :: setErrorCallback( RtMidiErrorCallback errorCallback, void *userD void MidiApi :: error( RtMidiError::Type type, std::string errorString ) { if ( errorCallback_ ) { - static bool firstErrorOccured = false; - if ( firstErrorOccured ) + if ( firstErrorOccured_ ) return; - firstErrorOccured = true; + firstErrorOccured_ = true; const std::string errorMessage = errorString; errorCallback_( type, errorMessage, errorCallbackUserData_); - firstErrorOccured = false; + firstErrorOccured_ = false; return; } @@ -1472,6 +1471,7 @@ void MidiInAlsa :: openPort( unsigned int portNumber, const std::string portName snd_seq_addr_t sender, receiver; sender.client = snd_seq_port_info_get_client( src_pinfo ); sender.port = snd_seq_port_info_get_port( src_pinfo ); + receiver.client = snd_seq_client_id( data->seq ); snd_seq_port_info_t *pinfo; snd_seq_port_info_alloca( &pinfo ); @@ -1501,7 +1501,6 @@ void MidiInAlsa :: openPort( unsigned int portNumber, const std::string portName data->vport = snd_seq_port_info_get_port(pinfo); } - receiver.client = snd_seq_port_info_get_client( pinfo ); receiver.port = data->vport; if ( !data->subscription ) { @@ -2263,6 +2262,14 @@ std::string MidiOutWinMM :: getPortName( unsigned int portNumber ) stringName = std::string( deviceCaps.szPname ); #endif + // Next lines added to add the portNumber to the name so that + // the device's names are sure to be listed with individual names + // even when they have the same brand name + std::ostringstream os; + os << " "; + os << portNumber; + stringName += os.str(); + return stringName; } |
