summaryrefslogtreecommitdiff
path: root/RtMidi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'RtMidi.cpp')
-rw-r--r--RtMidi.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/RtMidi.cpp b/RtMidi.cpp
index 27a4705..94b61d6 100644
--- a/RtMidi.cpp
+++ b/RtMidi.cpp
@@ -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;
}