diff options
author | Tim E. Real <termtech@rogers.com> | 2011-05-19 07:43:06 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2011-05-19 07:43:06 +0000 |
commit | 0f3ed66e83d6639452a5aa219b9a6bf2bfd54897 (patch) | |
tree | 950c324e7301f657cba543d8ccbb268ca40e418f /muse2/muse/midictrl.cpp | |
parent | 0792c2ec66dacfff10899cbe171cb661871617f1 (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.cpp | 78 |
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 |