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_;