Complete port of Kotlin MidiCIDeviceConfiguration to C++ #56
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Complete Port of Kotlin MidiCIDeviceConfiguration to C++
Summary
This PR completes the port of the Kotlin
MidiCIDeviceConfigurationclass to C++ and renames the existing incompleteDeviceConfigtoMidiCIDeviceConfiguration. The original C++ implementation was a minimal subset that was "hackily imported" from the Kotlin version and was missing many essential fields.Changes Made
Core Implementation
DeviceConfig→MidiCIDeviceConfigurationthroughout the entire codebaseMidiCIChannelListNew Files Created
include/midi-ci/core/MidiCIDeviceConfiguration.hpp- Complete C++ port with all Kotlin fieldsinclude/midi-ci/core/MidiCIChannelList.hpp- Channel management supportEnhanced Constants
MidiCIConstants.hppwith missing enums:MidiCIProcessInquiryFeaturesMidiMessageReportDataControlMidiMessageReportSystemMessagesFlagsMidiMessageReportChannelControllerFlagsMidiMessageReportNoteDataFlagsField Updates
max_sysex_size→receivable_max_sysex_sizefor consistency with MIDI-CI specificationBackward Compatibility
Files Modified
MidiCIDevice.hpp/cpp,Messenger.cpp,CMakeLists.txtTestCIMediator.hpp,test_messenger.cppVerification
DeviceConfigname have been systematically replacedLink to Devin run
https://app.devin.ai/sessions/75c73f9944244ece8e2b554a4faa4d21
Requested by
Atsushi Eno (atsushieno@gmail.com)
This implementation now provides the complete MIDI-CI device configuration capabilities as specified in the original Kotlin version, enabling full-featured MIDI-CI device management in the C++ implementation.