diff --git a/src/utils.cc b/src/utils.cc index a910dcd..c3dec86 100644 --- a/src/utils.cc +++ b/src/utils.cc @@ -2,77 +2,95 @@ using namespace daisy; -void GetMidiTypeAsString(MidiEvent& msg, char* str) -{ - switch (msg.type) { - case NoteOff: - strcpy(str, "NoteOff"); - break; - case NoteOn: - strcpy(str, "NoteOn"); - break; - case PolyphonicKeyPressure: - strcpy(str, "PolyKeyPres."); - break; - case ControlChange: - strcpy(str, "CC"); - break; - case ProgramChange: - strcpy(str, "Prog. Change"); - break; - case ChannelPressure: - strcpy(str, "Chn. Pressure"); - break; - case PitchBend: - strcpy(str, "PitchBend"); - break; - case SystemCommon: - strcpy(str, "Sys. Common"); - break; - case SystemRealTime: - strcpy(str, "Sys. Realtime"); - break; - case ChannelMode: - strcpy(str, "Chn. Mode"); - break; - default: - strcpy(str, "Unknown"); - break; +namespace Heck { + + void GetMidiTypeAsString(MidiEvent& msg, char* str) + { + switch (msg.type) { + case NoteOff: + strcpy(str, "NoteOff"); + break; + case NoteOn: + strcpy(str, "NoteOn"); + break; + case PolyphonicKeyPressure: + strcpy(str, "PolyKeyPres."); + break; + case ControlChange: + strcpy(str, "CC"); + break; + case ProgramChange: + strcpy(str, "Prog. Change"); + break; + case ChannelPressure: + strcpy(str, "Chn. Pressure"); + break; + case PitchBend: + strcpy(str, "PitchBend"); + break; + case SystemCommon: + strcpy(str, "Sys. Common"); + break; + case SystemRealTime: + strcpy(str, "Sys. Realtime"); + break; + case ChannelMode: + strcpy(str, "Chn. Mode"); + break; + default: + strcpy(str, "Unknown"); + break; + } + } + + void GetMidiRTTypeAsString(MidiEvent& msg, char* str) + { + switch (msg.srt_type) { + case TimingClock: + strcpy(str, "TimingClock"); + break; + case SRTUndefined0: + strcpy(str, "SRTUndefined0"); + break; + case Start: + strcpy(str, "Start"); + break; + case Continue: + strcpy(str, "Continue"); + break; + case Stop: + strcpy(str, "Stop"); + break; + case SRTUndefined1: + strcpy(str, "SRTUndefined1"); + break; + case ActiveSensing: + strcpy(str, "ActiveSensing"); + break; + case Reset: + strcpy(str, "Reset"); + break; + case SystemRealTimeLast: + strcpy(str, "SystemRealTimeLast"); + break; + default: + strcpy(str, "Unknown"); + break; + } + } + + + float scalen_min_max(float val, float min, float max) + { + float range = max - min; + float ret = min + (val * range); + return ret; } -} -void GetMidiRTTypeAsString(MidiEvent& msg, char* str) -{ - switch (msg.srt_type) { - case TimingClock: - strcpy(str, "TimingClock"); - break; - case SRTUndefined0: - strcpy(str, "SRTUndefined0"); - break; - case Start: - strcpy(str, "Start"); - break; - case Continue: - strcpy(str, "Continue"); - break; - case Stop: - strcpy(str, "Stop"); - break; - case SRTUndefined1: - strcpy(str, "SRTUndefined1"); - break; - case ActiveSensing: - strcpy(str, "ActiveSensing"); - break; - case Reset: - strcpy(str, "Reset"); - break; - case SystemRealTimeLast: - strcpy(str, "SystemRealTimeLast"); - break; - default: - strcpy(str, "Unknown"); - break; + float scalen_center_range(float val, float center, float range) + { + float min = center - (range / 2); + float ret = min + (val * range); + return ret; } -} +} // namespace Heck \ No newline at end of file diff --git a/src/utils.hh b/src/utils.hh index 79a00b0..08dd08c 100644 --- a/src/utils.hh +++ b/src/utils.hh @@ -4,8 +4,12 @@ #include "daisy_seed.h" #include "globals.hh" -void GetMidiTypeAsString(daisy::MidiEvent& msg, char* str); -void GetMidiRTTypeAsString(daisy::MidiEvent& msg, char* str); +namespace Heck { + void GetMidiTypeAsString(daisy::MidiEvent& msg, char* str); + void GetMidiRTTypeAsString(daisy::MidiEvent& msg, char* str); + float scalen_min_max(float val, float min, float max); + float scalen_center_range(float val, float center, float range); +} // namespace Heck #endif // HECK_DAISY_UTILS_HH \ No newline at end of file