The check for events coming during the processing time should be done within the if (m_pInputStream) block in case m_pInputStream is NULL.
The m_sPMLock is not unlocked before usleep'ing, so multiple PortMIDI devices may fight over this lock since it is shared across all PortMIDI devices.
Are all PortMIDI errors (Pm_Poll or Pm_Read returning <0) unrecoverable? Given the error checking you added, it will break out of the processing loop, causing the device to need to be re-enabled in the preferences.
I've fixed 1+2 and once I learn the answer to 3 I'll commit this.
Hey Guy,
Thanks for the patch! A couple notes:
The check for events coming during the processing time should be done within the if (m_pInputStream) block in case m_pInputStream is NULL.
The m_sPMLock is not unlocked before usleep'ing, so multiple PortMIDI devices may fight over this lock since it is shared across all PortMIDI devices.
Are all PortMIDI errors (Pm_Poll or Pm_Read returning <0) unrecoverable? Given the error checking you added, it will break out of the processing loop, causing the device to need to be re-enabled in the preferences.
I've fixed 1+2 and once I learn the answer to 3 I'll commit this.
RJ
Thanks,
RJ