|
|
|
@ -28,7 +28,7 @@ |
|
|
|
|
const uint8_t MAX_VARIABLES = 5; ///< @note Default: 5
|
|
|
|
|
|
|
|
|
|
/// Configures the number of available functions per line.
|
|
|
|
|
const uint8_t MAX_FUNCTIONS = 41; ///< @note Default: 8
|
|
|
|
|
const uint8_t MAX_FUNCTIONS = 42; ///< @note Default: 8
|
|
|
|
|
|
|
|
|
|
/// Configures the number of available lines per screen.
|
|
|
|
|
const uint8_t MAX_LINES = 20; ///< @note Default: 12
|
|
|
|
@ -37,7 +37,7 @@ |
|
|
|
|
const uint8_t MAX_SCREENS = 2; ///< @note Default: 14
|
|
|
|
|
|
|
|
|
|
/// Configures the number of available menus per menus system.
|
|
|
|
|
const uint8_t MAX_MENUS = 44; ///< @note Default: 8
|
|
|
|
|
const uint8_t MAX_MENUS = 45; ///< @note Default: 8
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
@ -103,10 +103,11 @@ elapsedMillis back_to_main; |
|
|
|
|
#define MIDI_SOFT_THRU 38 |
|
|
|
|
#define MAX_POLY 39 |
|
|
|
|
#define MONO 40 |
|
|
|
|
#define PANORAMA 41 |
|
|
|
|
/*************************************/ |
|
|
|
|
#define STORE_QUESTION 41 |
|
|
|
|
#define STORE_QUESTION 42 |
|
|
|
|
/*************************************/ |
|
|
|
|
#define MASTER_VOLUME 42 |
|
|
|
|
#define MASTER_VOLUME 43 |
|
|
|
|
/*************************************/ |
|
|
|
|
|
|
|
|
|
int8_t menu_position[NUM_MENUS]; |
|
|
|
@ -708,17 +709,19 @@ LiquidMenu save_sound_menu(lcd); |
|
|
|
|
/******************************************
|
|
|
|
|
SYSTEM MENU |
|
|
|
|
******************************************/ |
|
|
|
|
#define NUM_SYSTEM_MENUS 5 |
|
|
|
|
#define NUM_SYSTEM_MENUS 6 |
|
|
|
|
const char system_text1[] PROGMEM = "Loudness"; |
|
|
|
|
const char system_text2[] PROGMEM = "MIDI Channel"; |
|
|
|
|
const char system_text3[] PROGMEM = "MIDI Soft-Thru"; |
|
|
|
|
const char system_text4[] PROGMEM = "Max. Polyphony"; |
|
|
|
|
const char system_text5[] PROGMEM = "Mono/Stereo"; |
|
|
|
|
const char system_text6[] PROGMEM = "Panorama"; |
|
|
|
|
LiquidLine system_line1(1, 0, system_text1); |
|
|
|
|
LiquidLine system_line2(1, 1, system_text2); |
|
|
|
|
LiquidLine system_line3(1, 1, system_text3); |
|
|
|
|
LiquidLine system_line4(1, 1, system_text4); |
|
|
|
|
LiquidLine system_line5(1, 1, system_text5); |
|
|
|
|
LiquidLine system_line6(1, 1, system_text6); |
|
|
|
|
LiquidScreen system_screen; |
|
|
|
|
LiquidMenu system_menu(lcd); |
|
|
|
|
|
|
|
|
@ -772,6 +775,16 @@ LiquidLine mono_line2(1, 1, get_mono_value_text); |
|
|
|
|
LiquidScreen mono_screen; |
|
|
|
|
LiquidMenu mono_menu(lcd); |
|
|
|
|
|
|
|
|
|
/******************************************
|
|
|
|
|
PANORAMA MENU |
|
|
|
|
******************************************/ |
|
|
|
|
#define NUM_PANORAMA_MENUS 1 |
|
|
|
|
const char panorama_text1[] PROGMEM = "Panorama"; |
|
|
|
|
LiquidLine panorama_line1(1, 0, panorama_text1); |
|
|
|
|
LiquidLine panorama_line2(1, 1, configuration.pan); |
|
|
|
|
LiquidScreen panorama_screen; |
|
|
|
|
LiquidMenu panorama_menu(lcd); |
|
|
|
|
|
|
|
|
|
/******************************************
|
|
|
|
|
INFO MENU |
|
|
|
|
******************************************/ |
|
|
|
@ -1335,6 +1348,18 @@ void callback_mono_function(void) |
|
|
|
|
menu_system.update(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void callback_panorama_function(void) |
|
|
|
|
{ |
|
|
|
|
#ifdef SHOW_DEBUG |
|
|
|
|
Serial.println(F("callback_panorama_function")); |
|
|
|
|
#endif |
|
|
|
|
menu_system.change_menu(panorama_menu); |
|
|
|
|
menu_position[SYSTEM] = encoder_value[RIGHT_ENCODER]; |
|
|
|
|
encoder_value[RIGHT_ENCODER] = configuration.mono; |
|
|
|
|
enc[RIGHT_ENCODER].write(configuration.mono, ENC_MASTER_PAN_MIN, ENC_MASTER_PAN_MAX); |
|
|
|
|
menu_system.update(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/******************************************
|
|
|
|
|
INFO MENU CALLBACKS |
|
|
|
|
******************************************/ |
|
|
|
@ -1717,12 +1742,13 @@ void init_menus(void) |
|
|
|
|
store_question_screen.set_displayLineCount(2); |
|
|
|
|
store_question_menu.add_screen(store_question_screen); |
|
|
|
|
|
|
|
|
|
// setup effects menu
|
|
|
|
|
// setup system menu
|
|
|
|
|
system_screen.add_line(system_line1); |
|
|
|
|
system_screen.add_line(system_line2); |
|
|
|
|
system_screen.add_line(system_line3); |
|
|
|
|
system_screen.add_line(system_line4); |
|
|
|
|
system_screen.add_line(system_line5); |
|
|
|
|
system_screen.add_line(system_line6); |
|
|
|
|
system_screen.set_displayLineCount(2); |
|
|
|
|
system_menu.add_screen(system_screen); |
|
|
|
|
|
|
|
|
@ -1731,6 +1757,7 @@ void init_menus(void) |
|
|
|
|
system_line3.attach_function(MIDI_SOFT_THRU, callback_midi_soft_thru_function); |
|
|
|
|
system_line4.attach_function(MAX_POLY, callback_max_poly_function); |
|
|
|
|
system_line5.attach_function(MONO, callback_mono_function); |
|
|
|
|
system_line6.attach_function(PANORAMA, callback_panorama_function); |
|
|
|
|
|
|
|
|
|
// setup loudness
|
|
|
|
|
loudness_screen.add_line(loudness_line1); |
|
|
|
@ -1762,6 +1789,12 @@ void init_menus(void) |
|
|
|
|
mono_screen.set_displayLineCount(2); |
|
|
|
|
mono_menu.add_screen(mono_screen); |
|
|
|
|
|
|
|
|
|
// setup panorama
|
|
|
|
|
panorama_screen.add_line(panorama_line1); |
|
|
|
|
panorama_screen.add_line(panorama_line2); |
|
|
|
|
panorama_screen.set_displayLineCount(2); |
|
|
|
|
panorama_menu.add_screen(panorama_screen); |
|
|
|
|
|
|
|
|
|
// setup info menu
|
|
|
|
|
info_screen.add_line(info_line1); |
|
|
|
|
info_screen.add_line(info_line2); |
|
|
|
@ -1817,6 +1850,7 @@ void init_menus(void) |
|
|
|
|
menu_system.add_menu(midi_soft_thru_menu); |
|
|
|
|
menu_system.add_menu(max_poly_menu); |
|
|
|
|
menu_system.add_menu(mono_menu); |
|
|
|
|
menu_system.add_menu(panorama_menu); |
|
|
|
|
menu_system.add_menu(info_menu); |
|
|
|
|
menu_system.add_menu(master_volume_menu); |
|
|
|
|
|
|
|
|
@ -1977,7 +2011,7 @@ void set_velocity_sense(uint8_t value) |
|
|
|
|
configuration.velocity_sense = value; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void set_pan_trem_frequency(uint8_t value) |
|
|
|
|
void set_pan_trem_frequency(int8_t value) |
|
|
|
|
{ |
|
|
|
|
if (value > ENC_PAN_TREM_FREQUENCY_MAX) |
|
|
|
|
value = ENC_PAN_TREM_FREQUENCY_MAX; |
|
|
|
@ -2292,8 +2326,8 @@ void set_midi_soft_thru(uint8_t value) |
|
|
|
|
|
|
|
|
|
void set_max_poly(uint8_t value) |
|
|
|
|
{ |
|
|
|
|
if (value > ENC_MAX_POLY_DEFAULT) |
|
|
|
|
value = ENC_MAX_POLY_DEFAULT; |
|
|
|
|
if (value > ENC_MAX_POLY_MAX) |
|
|
|
|
value = ENC_MAX_POLY_MAX; |
|
|
|
|
#ifdef SHOW_DEBUG |
|
|
|
|
Serial.print(F("Set MAX_POLY ")); |
|
|
|
|
Serial.println(value); |
|
|
|
@ -2325,6 +2359,19 @@ void set_mono(uint8_t mode) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void set_panorama(uint8_t value) |
|
|
|
|
{ |
|
|
|
|
if (value < ENC_MASTER_PAN_MIN) |
|
|
|
|
value = ENC_MASTER_PAN_MIN; |
|
|
|
|
if (value > ENC_MASTER_PAN_MAX) |
|
|
|
|
#ifdef SHOW_DEBUG |
|
|
|
|
Serial.print(F("Set MASTER_PANORAMA ")); |
|
|
|
|
Serial.println(value); |
|
|
|
|
#endif |
|
|
|
|
configuration.pan = value; |
|
|
|
|
set_master_volume(master_volume); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void set_complete_configuration(void) |
|
|
|
|
{ |
|
|
|
|
set_decay(configuration.decay); |
|
|
|
@ -2360,6 +2407,7 @@ void set_complete_configuration(void) |
|
|
|
|
set_midi_soft_thru(configuration.midi_soft_thru); |
|
|
|
|
set_max_poly(configuration.max_poly); |
|
|
|
|
set_mono(configuration.mono); |
|
|
|
|
set_panorama(configuration.pan); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//********************************************************************************************+
|
|
|
|
@ -2721,6 +2769,15 @@ void handle_ui(void) |
|
|
|
|
menu_system.update(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else if (menu_system.get_currentScreen() == &panorama_screen) |
|
|
|
|
{ |
|
|
|
|
if (encoder_tmp != encoder_value[RIGHT_ENCODER]) |
|
|
|
|
{ |
|
|
|
|
// value up/down
|
|
|
|
|
set_panorama(encoder_tmp); |
|
|
|
|
menu_system.update(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
// Move menu focus
|
|
|
|
@ -3148,6 +3205,13 @@ void handle_ui(void) |
|
|
|
|
#endif |
|
|
|
|
goto_system_menu(MONO); |
|
|
|
|
} |
|
|
|
|
else if (menu_system.get_currentScreen() == &panorama_screen) // panorama menu
|
|
|
|
|
{ |
|
|
|
|
#ifdef SHOW_DEBUG |
|
|
|
|
Serial.println(F("from panorama to system")); |
|
|
|
|
#endif |
|
|
|
|
goto_system_menu(PANORAMA); |
|
|
|
|
} |
|
|
|
|
else if (menu_system.get_currentScreen() == &info_screen) // info menu
|
|
|
|
|
{ |
|
|
|
|
#ifdef SHOW_DEBUG |
|
|
|
|