Mercurial > hg > touchkeys
changeset 8:2832beb744bb
GUI update to send MIDI RPN message to set pitch wheel range
author | Andrew McPherson <andrewm@eecs.qmul.ac.uk> |
---|---|
date | Sun, 17 Nov 2013 14:01:42 +0000 |
parents | 353276611036 |
children | f943785252fc |
files | Builds/MacOSX/TouchKeys.xcodeproj/project.xcworkspace/xcuserdata/apm.xcuserdatad/UserInterfaceState.xcuserstate Source/GUI/KeyboardZoneComponent.cpp Source/GUI/KeyboardZoneComponent.h |
diffstat | 3 files changed, 17 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
Binary file Builds/MacOSX/TouchKeys.xcodeproj/project.xcworkspace/xcuserdata/apm.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- a/Source/GUI/KeyboardZoneComponent.cpp Sun Nov 17 13:53:21 2013 +0000 +++ b/Source/GUI/KeyboardZoneComponent.cpp Sun Nov 17 14:01:42 2013 +0000 @@ -174,7 +174,7 @@ pitchWheelRangeEditor->setText (String::empty); addAndMakeVisible (keyboardControllersButton = new TextButton ("keyboard controllers button")); - keyboardControllersButton->setButtonText ("Keyboard Controllers..."); + keyboardControllersButton->setButtonText (" Controllers..."); keyboardControllersButton->addListener (this); @@ -595,16 +595,18 @@ { if(controller_ == 0 || keyboardSegment_ == 0) return; - + PopupMenu menu; - + + menu.addItem(kKeyboardControllerSendPitchWheelRange, "Send Pitchwheel Range RPN", true, false); + menu.addSeparator(); menu.addItem(MidiKeyboardSegment::kControlPitchWheel, "Retransmit from Keyboard:", false); menu.addSeparator(); menu.addItem(MidiKeyboardSegment::kControlPitchWheel, "Pitch Wheel", true, keyboardSegment_->usesKeyboardPitchWheel()); menu.addItem(MidiKeyboardSegment::kControlChannelAftertouch, "Aftertouch", true, keyboardSegment_->usesKeyboardChannnelPressure()); menu.addItem(1, "CC 1 (Mod Wheel)", true, keyboardSegment_->usesKeyboardModWheel()); menu.addItem(kKeyboardControllerRetransmitOthers, "Other Controllers", true, keyboardSegment_->usesKeyboardMIDIControllers()); - + menu.showMenuAsync(PopupMenu::Options().withTargetComponent(keyboardControllersButton), ModalCallbackFunction::forComponent(staticKeyboardControllerChosenCallback, this)); } @@ -630,7 +632,7 @@ { if(controller_ == 0 || keyboardSegment_ == 0) return; - + // Enable or disable retransmitting specific messages if(result == MidiKeyboardSegment::kControlPitchWheel) { keyboardSegment_->setUsesKeyboardPitchWheel(!keyboardSegment_->usesKeyboardPitchWheel()); @@ -644,6 +646,10 @@ else if(result == kKeyboardControllerRetransmitOthers) { keyboardSegment_->setUsesKeyboardMIDIControllers(!keyboardSegment_->usesKeyboardMIDIControllers()); } + else if(result == kKeyboardControllerSendPitchWheelRange) { + // Send a MIDI RPN message now to update the pitch wheel range + keyboardSegment_->sendMidiPitchWheelRange(); + } } //[/MiscUserCode] @@ -745,7 +751,7 @@ multiline="0" retKeyStartsLine="0" readonly="0" scrollbars="1" caret="1" popupmenu="1"/> <TEXTBUTTON name="keyboard controllers button" id="a1ebab19a3375b93" memberName="keyboardControllersButton" - virtualName="" explicitFocusOrder="0" pos="24 100 152 20" buttonText="Keyboard Controllers..." + virtualName="" explicitFocusOrder="0" pos="24 100 152 20" buttonText=" Controllers..." connectedEdges="0" needsCallback="1" radioGroupId="0"/> </JUCER_COMPONENT>
--- a/Source/GUI/KeyboardZoneComponent.h Sun Nov 17 13:53:21 2013 +0000 +++ b/Source/GUI/KeyboardZoneComponent.h Sun Nov 17 14:01:42 2013 +0000 @@ -91,7 +91,7 @@ component->mappingChosenCallback(result); } void mappingChosenCallback(int result); - + static void staticKeyboardControllerChosenCallback(int result, KeyboardZoneComponent* component) { if (result != 0 && component != 0) component->keyboardControllerChosenCallback(result); @@ -114,10 +114,11 @@ kMidiOutputDeviceComboBoxOffset = 3, kMidiOutputModeComboBoxOffset = 1 }; - + enum { // Special commands for keyboard controller popup button - kKeyboardControllerRetransmitOthers = 2000 + kKeyboardControllerRetransmitOthers = 2000, + kKeyboardControllerSendPitchWheelRange }; // Update list of MIDI output devices @@ -128,7 +129,7 @@ // Create popup menu for keyboard controller retransmission void createKeyboardControllerPopup(); - + MainApplicationController *controller_; // Pointer to the main application controller MidiKeyboardSegment *keyboardSegment_; // Pointer to the segment this component controls std::vector<int> midiOutputDeviceIDs_;