mixedinkey-opensource/MIKMIDI — pull request #13 by grype (2014-02-18 03:41:51+00:00)
Title: Some improvements to handling sysex messages and to the testbed app

MIKMIDISystexExclusiveCommand:
* add method for returning manufacturerID - seemed to be missing
* sysex channel was always returning the byte following the manufacturerID, although only universal sysex messages will have that information, in other instances that could be anything really - frequently it will be a model ID of the device, or a version ID. One way or another - sysexData method was ignoring that byte. As a result, "universal" property was added, which would indicate whether message is universal; if message is universal - sysexChannel will return meaningful value as before, and sysexData will begin with message's subID's (immediately following the channel byte, as before), otherwise - sysexChannel will return 0, and sysexData will begin immediately after manufacturerID. Rationale there is for sysexData to return subrange of internalData that we didn't account for via other properties...
* figure out whether there's a 3-byte manufacturerID in the MIDI packet during instantiation. Prior to this, the only time this distinction was ever made is when assigning to data property, but during instantiation, data is assigned directly to internalData. So, instances were unaware of 3-byte manufacturerID
* data message was appending end delimiter to internalData, which was once captured during instantiation from a MIDI packet, resulting in extraneous end delimiter; so, added a check for lastByte, and only appending end delimiter if there's one already...

For all MIDI commands:
* slightly modified description method to make it easier on the eye - data is described at the very end...
* also, when describing data - describe the entire data block, instead of a subrange specific to a particular subclass of MIKMIDICommand - makes it easier to debug/spot errors

Testbed App:
* Add connections for all sources and destinations, not just the first one we find... (connections weren't made for all sources/destinations on multi-port devices)
* Add button to clear output contents
* Make output text view configuration more appropriate for its use, getting rid of spellchecker's abundant underlines
* Auto-scroll to the end of document when appending text to the output text view (annoying to have to scroll to see the output while testing)
* Hopefully make the app a little more useful by adding ability to send custom data (instead of having a button that always sends Identity Request). Identity Request lives in the combo box's popup, for easy access, so that functionality remains...