summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2014-03-27 10:54:41 -0400
committerRJ Ryan <rryan@mixxx.org>2014-03-29 02:40:30 -0400
commit5583f2c5eb901a32f5b13d4d5aed7bd1ba22b65d (patch)
tree353e44ce42725bbbf372cf1d71c17ace233e1433
parent144f016137306359181f3014ff5fc5704373c030 (diff)
Add MidiUtils class for holding random utility methods, translation strings.
-rw-r--r--build/depends.py1
-rw-r--r--src/controllers/midi/midiutils.cpp61
-rw-r--r--src/controllers/midi/midiutils.h14
3 files changed, 76 insertions, 0 deletions
diff --git a/build/depends.py b/build/depends.py
index 75bae17621..e0e72c916b 100644
--- a/build/depends.py
+++ b/build/depends.py
@@ -648,6 +648,7 @@ class MixxxCore(Feature):
"controllers/controllerpresetinfo.cpp",
"controllers/controlpickermenu.cpp",
"controllers/learningutils.cpp",
+ "controllers/midi/midiutils.cpp",
"controllers/midi/midicontroller.cpp",
"controllers/midi/midicontrollerpresetfilehandler.cpp",
"controllers/midi/midienumerator.cpp",
diff --git a/src/controllers/midi/midiutils.cpp b/src/controllers/midi/midiutils.cpp
new file mode 100644
index 0000000000..93abb552f9
--- /dev/null
+++ b/src/controllers/midi/midiutils.cpp
@@ -0,0 +1,61 @@
+#include "controllers/midi/midiutils.h"
+
+// static
+QString MidiUtils::opCodeToTranslatedString(MidiOpCode code) {
+ if (code < 0x00 || code > 0xFF) {
+ return QObject::tr("Invalid");
+ }
+ switch (code) {
+ case MIDI_NOTE_ON:
+ return QObject::tr("Note On");
+ case MIDI_NOTE_OFF:
+ return QObject::tr("Note Off");
+ case MIDI_CC:
+ return QObject::tr("CC");
+ case MIDI_PITCH_BEND:
+ return QObject::tr("Pitch Bend");
+ default:
+ return QObject::tr("Unknown (0x%1)").arg(
+ code, 2, 16, QLatin1Char('0'));
+ }
+}
+
+// static
+QString MidiUtils::formatByte(unsigned char value) {
+ // Construct a hex string formatted like 0xFF.
+ return QString("0x") + QString("%1")
+ .arg(value, 2, 16, QLatin1Char('0')).toUpper();
+}
+
+// static
+QString MidiUtils::midiOptionToTranslatedString(MidiOption option) {
+ switch (option) {
+ case MIDI_OPTION_INVERT:
+ return QObject::tr("Invert");
+ case MIDI_OPTION_ROT64:
+ return QObject::tr("Rot64");
+ case MIDI_OPTION_ROT64_INV:
+ return QObject::tr("Rot64Inv");
+ case MIDI_OPTION_ROT64_FAST:
+ return QObject::tr("Rot64Fast");
+ case MIDI_OPTION_DIFF:
+ return QObject::tr("Diff");
+ case MIDI_OPTION_BUTTON:
+ return QObject::tr("Button");
+ case MIDI_OPTION_SWITCH:
+ return QObject::tr("Switch");
+ case MIDI_OPTION_SPREAD64:
+ return QObject::tr("Spread64");
+ case MIDI_OPTION_HERC_JOG:
+ return QObject::tr("HercJog");
+ case MIDI_OPTION_SELECTKNOB:
+ return QObject::tr("SelectKnob");
+ case MIDI_OPTION_SOFT_TAKEOVER:
+ return QObject::tr("SoftTakeover");
+ case MIDI_OPTION_SCRIPT:
+ return QObject::tr("Script");
+ default:
+ return QObject::tr("Unknown (0x%1)")
+ .arg(option, 4, 16, QLatin1Char('0'));
+ }
+}
diff --git a/src/controllers/midi/midiutils.h b/src/controllers/midi/midiutils.h
new file mode 100644
index 0000000000..dbcc9a4009
--- /dev/null
+++ b/src/controllers/midi/midiutils.h
@@ -0,0 +1,14 @@
+#ifndef MIDIUTILS_H
+#define MIDIUTILS_H
+
+#include "controllers/midi/midimessage.h"
+
+class MidiUtils {
+ public:
+ static QString opCodeToTranslatedString(MidiOpCode code);
+ static QString formatByte(unsigned char value);
+ static QString midiOptionToTranslatedString(MidiOption option);
+};
+
+
+#endif /* MIDIUTILS_H */