/*
   MicroDexed

   MicroDexed is a port of the Dexed sound engine
   (https://github.com/asb2m10/dexed) for the Teensy-3.5/3.6 with audio shield.
   Dexed ist heavily based on https://github.com/google/music-synthesizer-for-android

   (c)2018-2020 H. Wirtz <wirtz@parasitstudio.de>

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software Foundation,
   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
*/

#ifndef _UI_H_
#define _UI_H_

LCDML_add(0, LCDML_0, 1, "Setup", NULL);
LCDML_add(1, LCDML_0_1, 1, "Instance 1", NULL);
LCDML_add(2, LCDML_0_1_1, 1, "MIDI Channel 1", UI_func_midi_channel);
LCDML_add(2, LCDML_0_1, 2, "Lowest Note", UI_func_lowest_note); ///////////////////////
LCDML_add(3, LCDML_0_1, 3, "Highest Note", UI_func_highest_note); ///////////////////////
LCDML_add(3, LCDML_0_1_1, 2, "Transpose 1", UI_func_transpose);
LCDML_add(4, LCDML_0_1_1, 3, "Tune 1", UI_func_tune);
LCDML_add(5, LCDML_0_1_1, 4, "Volume 1", UI_func_sound_intensity);
LCDML_add(6, LCDML_0_1_1, 5, "Reverb Send 1", UI_func_reverb_send);
LCDML_add(7, LCDML_0_1_1, 6, "Chorus Send 1", UI_func_chorus_send);
LCDML_add(8, LCDML_0_1_1, 7, "Delay Send 1", UI_func_delay_send);
LCDML_add(9, LCDML_0_1_1, 8, "Filter 1", NULL);
LCDML_add(10, LCDML_0_1_1_8, 1, "Cutoff 1", UI_func_filter_cutoff);
LCDML_add(11, LCDML_0_1_1_8, 2, "Resonance 1", UI_func_filter_resonance);
LCDML_add(12, LCDML_0_1_1, 9, "Panorama 1", UI_func_panorama);
LCDML_add(13, LCDML_0_1_1, 10, "Polyphony 1", UI_func_polyphony);
LCDML_add(14, LCDML_0_1_1, 11, "Velocity Lvl 1", UI_func_velocity_level);
LCDML_add(15, LCDML_0_1_1, 12, "Engine 1", UI_func_engine);
LCDML_add(16, LCDML_0_1_1, 13, "Mono/Poly 1", UI_func_mono_poly);
LCDML_add(17, LCDML_0_1_1, 14, "Note Refresh 1", UI_func_note_refresh);
LCDML_add(18, LCDML_0_1_1, 15, "Pitchbend 1", NULL);
LCDML_add(19, LCDML_0_1_1_15, 1, "PB Range 1", UI_func_pb_range);
LCDML_add(20, LCDML_0_1_1_15, 2, "PB Step 1", UI_func_pb_step);
LCDML_add(21, LCDML_0_1_1, 16, "Mod Wheel 1", NULL);
LCDML_add(22, LCDML_0_1_1_16, 1, "MW Range 1", UI_func_mw_range);
LCDML_add(23, LCDML_0_1_1_16, 2, "MW Assign 1", UI_func_mw_assign);
LCDML_add(24, LCDML_0_1_1_16, 3, "MW Mode 1", UI_func_mw_mode);
LCDML_add(25, LCDML_0_1_1, 17, "Foot Ctrl 1", NULL);
LCDML_add(26, LCDML_0_1_1_17, 1, "FC Range 1", UI_func_fc_range);
LCDML_add(27, LCDML_0_1_1_17, 2, "FC Assign 1", UI_func_fc_assign);
LCDML_add(28, LCDML_0_1_1_17, 3, "FC Mode 1", UI_func_fc_mode);
LCDML_add(29, LCDML_0_1_1, 18, "Breath Ctrl 1", NULL);
LCDML_add(30, LCDML_0_1_1_18, 1, "BC Range 1", UI_func_bc_range);
LCDML_add(31, LCDML_0_1_1_18, 2, "BC Assign 1", UI_func_bc_assign);
LCDML_add(32, LCDML_0_1_1_18, 3, "BC Mode 1", UI_func_bc_mode);
LCDML_add(33, LCDML_0_1_1, 19, "Aftertouch 1", NULL);
LCDML_add(34, LCDML_0_1_1_19, 1, "AT Range 1", UI_func_at_range);
LCDML_add(35, LCDML_0_1_1_19, 2, "AT Assign 1", UI_func_at_assign);
LCDML_add(36, LCDML_0_1_1_189, 3, "AT Mode 1", UI_func_at_mode);
LCDML_add(37, LCDML_0_1_1, 20, "Portamento 1", NULL);
LCDML_add(38, LCDML_0_1_1_20, 1, "Port. Mode 1", UI_func_portamento_mode);
LCDML_add(39, LCDML_0_1_1_20, 2, "Port. Gliss 1", UI_func_portamento_glissando);
LCDML_add(40, LCDML_0_1_1_20, 3, "Port. Time 1", UI_func_portamento_time);
LCDML_add(41, LCDML_0_1_1, 21, "Operator 1", NULL);
LCDML_add(42, LCDML_0_1_1_21, 1, "OP1 1", UI_func_OP1);
LCDML_add(43, LCDML_0_1_1_21, 2, "OP2 1", UI_func_OP2);
LCDML_add(44, LCDML_0_1_1_21, 3, "OP3 1", UI_func_OP3);
LCDML_add(45, LCDML_0_1_1_21, 4, "OP4 1", UI_func_OP4);
LCDML_add(46, LCDML_0_1_1_21, 5, "OP5 1", UI_func_OP5);
LCDML_add(47, LCDML_0_1_1_21, 6, "OP6 1", UI_func_OP6);
LCDML_add(48, LCDML_0_1, 2, "Instance 2", NULL);
LCDML_add(49, LCDML_0_1_2, 1, "MIDI Channel 2", UI_func_midi_channel);
LCDML_add(50, LCDML_0_1_2, 2, "Volume 2", UI_func_sound_intensity);
LCDML_add(51, LCDML_0_1_2, 3, "Transpose 2", UI_func_transpose);
LCDML_add(52, LCDML_0_1_2, 4, "Tune 2", UI_func_tune);
LCDML_add(53, LCDML_0_1_2, 5, "Reverb Send 2", UI_func_reverb_send);
LCDML_add(54, LCDML_0_1_2, 6, "Chorus Send 2", UI_func_chorus_send);
LCDML_add(55, LCDML_0_1_2, 7, "Delay Send 2", UI_func_delay_send);
LCDML_add(56, LCDML_0_1_2, 8, "Filter 1", NULL);
LCDML_add(57, LCDML_0_1_2_8, 1, "Cutoff 1", UI_func_filter_cutoff);
LCDML_add(58, LCDML_0_1_2_8, 2, "Resonance 1", UI_func_filter_resonance);
LCDML_add(59, LCDML_0_1_2, 9, "Panorama 2", UI_func_panorama);
LCDML_add(60, LCDML_0_1_2, 10, "Polyphony 2", UI_func_polyphony);
LCDML_add(61, LCDML_0_1_2, 11, "Velocity Lvl 2", UI_func_velocity_level);
LCDML_add(62, LCDML_0_1_2, 12, "Engine 2", UI_func_engine);
LCDML_add(63, LCDML_0_1_2, 13, "Mono/Poly 2", UI_func_mono_poly);
LCDML_add(64, LCDML_0_1_1, 14, "Note Refresh 2", UI_func_note_refresh);
LCDML_add(65, LCDML_0_1_2, 15, "Pitchbend 2", NULL);
LCDML_add(66, LCDML_0_1_2_15, 1, "PB Range 2", UI_func_pb_range);
LCDML_add(67, LCDML_0_1_2_15, 2, "PB Step 2", UI_func_pb_step);
LCDML_add(68, LCDML_0_1_2, 16, "Mod Wheel 2", NULL);
LCDML_add(69, LCDML_0_1_2_16, 1, "MW Range 2", UI_func_mw_range);
LCDML_add(70, LCDML_0_1_2_16, 2, "MW Assign 2", UI_func_mw_assign);
LCDML_add(71, LCDML_0_1_2_16, 3, "MW Mode 2", UI_func_mw_mode);
LCDML_add(72, LCDML_0_1_2, 17, "Foot Ctrl 2", NULL);
LCDML_add(73, LCDML_0_1_2_17, 1, "FC Range 2", UI_func_fc_range);
LCDML_add(74, LCDML_0_1_2_17, 2, "FC Assign 2", UI_func_fc_assign);
LCDML_add(75, LCDML_0_1_2_17, 3, "FC Mode 2", UI_func_fc_mode);
LCDML_add(76, LCDML_0_1_2, 18, "Breat Ctrl 2", NULL);
LCDML_add(77, LCDML_0_1_2_18, 1, "BC Range 2", UI_func_bc_range);
LCDML_add(78, LCDML_0_1_2_18, 2, "BC Assign 2", UI_func_bc_assign);
LCDML_add(79, LCDML_0_1_2_18, 3, "BC Mode 2", UI_func_bc_mode);
LCDML_add(80, LCDML_0_1_2, 19, "Aftertouch 2", NULL);
LCDML_add(81, LCDML_0_1_2_19, 1, "AT Range 2", UI_func_at_range);
LCDML_add(82, LCDML_0_1_2_19, 2, "AT Assign 2", UI_func_at_assign);
LCDML_add(83, LCDML_0_1_2_19, 3, "AT Mode 2", UI_func_at_mode);
LCDML_add(84, LCDML_0_1_2, 20, "Portamento 2", NULL);
LCDML_add(85, LCDML_0_1_2_20, 1, "Port. Mode 2", UI_func_portamento_mode);
LCDML_add(86, LCDML_0_1_2_20, 2, "Port. Gliss 2", UI_func_portamento_glissando);
LCDML_add(87, LCDML_0_1_2_20, 3, "Port. Time 2", UI_func_portamento_time);
LCDML_add(88, LCDML_0_1_2, 21, "Operator 2", NULL);
LCDML_add(89, LCDML_0_1_2_21, 1, "OP1 2", UI_func_OP1);
LCDML_add(90, LCDML_0_1_2_21, 2, "OP2 2", UI_func_OP2);
LCDML_add(91, LCDML_0_1_2_21, 3, "OP3 2", UI_func_OP3);
LCDML_add(92, LCDML_0_1_2_21, 4, "OP4 2", UI_func_OP4);
LCDML_add(93, LCDML_0_1_2_21, 5, "OP5 2", UI_func_OP5);
LCDML_add(94, LCDML_0_1_2_21, 6, "OP6 2", UI_func_OP6);
LCDML_add(95, LCDML_0, 2, "Effect", NULL);
LCDML_add(96, LCDML_0_2, 1, "Reverb", NULL);
LCDML_add(97, LCDML_0_2_1, 1, "Roomsize", UI_func_reverb_roomsize);
LCDML_add(98, LCDML_0_2_1, 2, "Damping", UI_func_reverb_damping);
LCDML_add(99, LCDML_0_2_1, 3, "Level", UI_func_reverb_level);
LCDML_add(100, LCDML_0_2, 2, "Chorus", NULL);
LCDML_add(101, LCDML_0_2_2, 1, "Frequency", UI_func_chorus_frequency);
LCDML_add(102, LCDML_0_2_2, 2, "Waveform", UI_func_chorus_waveform);
LCDML_add(103, LCDML_0_2_2, 3, "Depth", UI_func_chorus_depth);
LCDML_add(104, LCDML_0_2_2, 4, "Level", UI_func_chorus_level);
LCDML_add(105, LCDML_0_2, 3, "Delay", NULL);
LCDML_add(106, LCDML_0_2_3, 1, "Time", UI_func_delay_time);
LCDML_add(107, LCDML_0_2_3, 2, "Feedback", UI_func_delay_feedback);
LCDML_add(108, LCDML_0_2_3, 3, "Level", UI_func_delay_level);
LCDML_add(109, LCDML_0, 3, "Load/Save", NULL);
LCDML_add(110, LCDML_0_3, 1, "Load", UI_func_load);
LCDML_add(111, LCDML_0_3, 2, "Save", UI_func_save);
LCDML_add(112, LCDML_0, 4, "System", NULL);
LCDML_add(113, LCDML_0_4, 1, "Stereo/Mono", UI_func_stereo_mono);
LCDML_add(114, LCDML_0_4, 2, "MIDI Soft THRU", UI_func_midi_soft_thru);
LCDML_add(115, LCDML_0, 5, "Info", UI_func_information);
#define _LCDML_DISP_cnt 115
#define MENU_ID_OF_INSTANCE_2 48

#endif
