summaryrefslogtreecommitdiff
path: root/muse2/muse/midictrl.cpp
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2011-05-19 07:43:06 +0000
committerTim E. Real <termtech@rogers.com>2011-05-19 07:43:06 +0000
commit0f3ed66e83d6639452a5aa219b9a6bf2bfd54897 (patch)
tree950c324e7301f657cba543d8ccbb268ca40e418f /muse2/muse/midictrl.cpp
parent0792c2ec66dacfff10899cbe171cb661871617f1 (diff)
Popup menus now auto-scroll if too large to fit on desktop.
Midi track info patch popup now stays open for auditioning patches. Editor 'ctrl' controller popups: Split instrument/other (+ common controls!) + show ctrl numbers.
Diffstat (limited to 'muse2/muse/midictrl.cpp')
-rw-r--r--muse2/muse/midictrl.cpp78
1 files changed, 74 insertions, 4 deletions
diff --git a/muse2/muse/midictrl.cpp b/muse2/muse/midictrl.cpp
index 66f8d87e..4cf1886a 100644
--- a/muse2/muse/midictrl.cpp
+++ b/muse2/muse/midictrl.cpp
@@ -139,15 +139,85 @@ void initMidiController()
}
//---------------------------------------------------------
+// midiCtrlNumString
+//---------------------------------------------------------
+
+QString midiCtrlNumString(int ctrl, bool fullyQualified)
+{
+ int h = (ctrl >> 8) & 0xff;
+ int l = ctrl & 0xff;
+ QString s1 = QString("%1").arg(h);
+ QString s2 = ( l == 0xff ? QString("* ") : QString("%1 ").arg(l) );
+ MidiController::ControllerType type = midiControllerType(ctrl);
+ switch (type)
+ {
+ case MidiController::Controller7:
+ if(fullyQualified)
+ return s2;
+ else
+ return QString();
+ case MidiController::Controller14:
+ return s1 + QString("CF") + s2;
+ case MidiController::RPN:
+ return s1 + QString("R") + s2;
+ case MidiController::NRPN:
+ return s1 + QString("N") + s2;
+ case MidiController::Pitch: // Don't show internal controller numbers.
+ return QString();
+ case MidiController::Program:
+ return QString();
+ case MidiController::Velo:
+ return QString();
+ case MidiController::RPN14:
+ return s1 + QString("RF") + s2;
+ case MidiController::NRPN14:
+ return s1 + QString("NF") + s2;
+ }
+ return s1 + QString("?") + s2;
+}
+
+//---------------------------------------------------------
// midiCtrlName
//---------------------------------------------------------
-QString midiCtrlName(int ctrl)
+QString midiCtrlName(int ctrl, bool fullyQualified)
+{
+ //if (ctrl < 0x10000)
+ // return QString(ctrlName[ctrl]);
+ //return QString("?N?");
+
+ // p4.0.25 Tim
+ int h = (ctrl >> 8) & 0xff;
+ int l = ctrl & 0xff;
+ QString s1 = QString("%1").arg(h);
+ QString s2 = ( l == 0xff ? QString("*") : QString("%1").arg(l) );
+ MidiController::ControllerType type = midiControllerType(ctrl);
+ switch (type)
{
- if (ctrl < 0x10000)
- return QString(ctrlName[ctrl]);
- return QString("?N?");
+ case MidiController::Controller7:
+ if(fullyQualified)
+ return s2 + QString(" ") + QString(ctrlName[l]);
+ else
+ return QString(ctrlName[l]);
+ case MidiController::Controller14:
+ return s1 + QString("CF") + s2;
+ case MidiController::RPN:
+ return s1 + QString("R") + s2;
+ case MidiController::NRPN:
+ return s1 + QString("N") + s2;
+ case MidiController::Pitch:
+ return QString("Pitch");
+ case MidiController::Program:
+ return QString("Program");
+ case MidiController::Velo:
+ return QString("Velocity");
+ case MidiController::RPN14:
+ return s1 + QString("RF") + s2;
+ case MidiController::NRPN14:
+ return s1 + QString("NF") + s2;
}
+ return s1 + QString("?") + s2;
+}
//---------------------------------------------------------
// MidiController