#include "part_menu.h" #include "../menu/menu.h" #include "../menu/menu_items.h" #include static const char* kVoiceDetailStrings[] = { "S", "M", "L", "XL" }; static const char* kMidiChannelStrings[] = { "omni", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" }; static const char* kMidiInputStrings[] = { "omni", "midi", "usb" }; static const char* kMidiThruStrings[] = { "off", "on", "polychain" }; PartMenu::PartMenu(Part* _part) : part(_part) , item_voice_count("voice count", (uint8_t*)&_part->data.part_voice_count, 1, 4, 1) , item_voice_detail("voice detail", (uint8_t*)&_part->data.part_voice_detail, kVoiceDetailStrings, 4) , item_midi_filter_enabled("MIDI filter", &_part->data.midi_filter_channel_enabled, "on", "off") , item_midi_channel("MIDI channel", (uint8_t*)&_part->data.midi_filter_channel, kMidiChannelStrings, 17) , item_midi_input("MIDI input", (uint8_t*)&_part->data.midi_filter_input, kMidiInputStrings, 3) , item_midi_lowest_note("MIDI lowest", (uint8_t*)&_part->data.midi_filter_lowest_note) , item_midi_highest_note("MIDI highest", (uint8_t*)&_part->data.midi_filter_highest_note) , item_midi_thru_mode("MIDI thru", (uint8_t*)&_part->data.midi_thru_mode, kMidiThruStrings, 3) { this->menu.add_item(&this->item_voice_count); this->menu.add_item(&this->item_voice_detail); this->menu.add_item(&this->item_midi_filter_enabled); this->menu.add_item(&this->item_midi_channel); this->menu.add_item(&this->item_midi_input); this->menu.add_item(&this->item_midi_lowest_note); this->menu.add_item(&this->item_midi_highest_note); this->menu.add_item(&this->item_midi_thru_mode); } void PartMenu::up() { menu.up(); } void PartMenu::down() { menu.down(); } bool PartMenu::back() { if (menu.back()) return true; return false; } bool PartMenu::enter() { menu.enter(); return false; } void PartMenu::render(U8G2* u8g2, int x, int y, int width, int height) { menu.render(u8g2, x, y, width, height); }