add rotate display
This commit is contained in:
@ -231,6 +231,10 @@ void HandleEncoderPressed() {
|
||||
app.encoder_reversed = app.selected_sub_param == 1;
|
||||
gravity.encoder.SetReverseDirection(app.encoder_reversed);
|
||||
}
|
||||
if (app.selected_param == PARAM_MAIN_ROTATE_DISP) {
|
||||
app.rotate_display = app.selected_sub_param == 1;
|
||||
gravity.display.setFlipMode(app.rotate_display ? 1 : 0);
|
||||
}
|
||||
if (app.selected_param == PARAM_MAIN_SAVE_DATA) {
|
||||
if (app.selected_sub_param < StateManager::MAX_SAVE_SLOTS) {
|
||||
app.selected_save_slot = app.selected_sub_param;
|
||||
@ -335,6 +339,9 @@ void editMainParameter(int val) {
|
||||
case PARAM_MAIN_ENCODER_DIR:
|
||||
updateSelection(app.selected_sub_param, val, 2);
|
||||
break;
|
||||
case PARAM_MAIN_ROTATE_DISP:
|
||||
updateSelection(app.selected_sub_param, val, 2);
|
||||
break;
|
||||
case PARAM_MAIN_SAVE_DATA:
|
||||
case PARAM_MAIN_LOAD_DATA:
|
||||
updateSelection(app.selected_sub_param, val,
|
||||
@ -393,6 +400,7 @@ void InitGravity(AppState &app) {
|
||||
gravity.clock.SetTempo(app.tempo);
|
||||
gravity.clock.SetSource(app.selected_source);
|
||||
gravity.encoder.SetReverseDirection(app.encoder_reversed);
|
||||
gravity.display.setFlipMode(app.rotate_display ? 1 : 0);
|
||||
}
|
||||
|
||||
void ResetOutputs() {
|
||||
|
||||
@ -31,6 +31,7 @@ struct AppState {
|
||||
byte cv_reset = 0;
|
||||
bool editing_param = false;
|
||||
bool encoder_reversed = false;
|
||||
bool rotate_display = false;
|
||||
bool refresh_screen = true;
|
||||
};
|
||||
|
||||
|
||||
@ -132,6 +132,7 @@ enum ParamsMainPage : uint8_t {
|
||||
PARAM_MAIN_SOURCE,
|
||||
PARAM_MAIN_PULSE,
|
||||
PARAM_MAIN_ENCODER_DIR,
|
||||
PARAM_MAIN_ROTATE_DISP,
|
||||
PARAM_MAIN_SAVE_DATA,
|
||||
PARAM_MAIN_LOAD_DATA,
|
||||
PARAM_MAIN_RESET_STATE,
|
||||
@ -328,6 +329,10 @@ void DisplayMainPage() {
|
||||
mainText = F("DIR");
|
||||
subText = app.selected_sub_param == 0 ? F("DEFAULT") : F("REVERSED");
|
||||
break;
|
||||
case PARAM_MAIN_ROTATE_DISP:
|
||||
mainText = F("DISP");
|
||||
subText = app.selected_sub_param == 0 ? F("DEFAULT") : F("ROTATED");
|
||||
break;
|
||||
case PARAM_MAIN_SAVE_DATA:
|
||||
case PARAM_MAIN_LOAD_DATA:
|
||||
if (app.selected_sub_param == StateManager::MAX_SAVE_SLOTS) {
|
||||
@ -369,9 +374,9 @@ void DisplayMainPage() {
|
||||
|
||||
// Draw Main Page menu items
|
||||
String menu_items[PARAM_MAIN_LAST] = {
|
||||
F("TEMPO"), F("CLK RUN"), F("CLK RESET"), F("SOURCE"),
|
||||
F("PULSE OUT"), F("ENCODER DIR"), F("SAVE"), F("LOAD"),
|
||||
F("RESET"), F("ERASE")};
|
||||
F("TEMPO"), F("RUN"), F("RST"), F("SOURCE"),
|
||||
F("PULSE OUT"), F("ENCODER DIR"), F("ROTATE DISP"), F("SAVE"),
|
||||
F("LOAD"), F("RESET"), F("ERASE")};
|
||||
drawMenuItems(menu_items, PARAM_MAIN_LAST);
|
||||
}
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
// Define the constants for the current firmware.
|
||||
const char StateManager::SKETCH_NAME[] = "ALT EUCLIDEAN";
|
||||
const char StateManager::SEMANTIC_VERSION[] =
|
||||
"V2.0.0BETA3"; // NOTE: This should match the version in the
|
||||
"V2.0.0BETA4"; // NOTE: This should match the version in the
|
||||
// library.properties file.
|
||||
|
||||
// Number of available save slots.
|
||||
@ -213,6 +213,7 @@ void StateManager::_saveMetadata(const AppState &app) {
|
||||
// Global user settings
|
||||
current_meta.selected_save_slot = app.selected_save_slot;
|
||||
current_meta.encoder_reversed = app.encoder_reversed;
|
||||
current_meta.rotate_display = app.rotate_display;
|
||||
|
||||
EEPROM.put(METADATA_START_ADDR, current_meta);
|
||||
interrupts();
|
||||
@ -224,5 +225,6 @@ void StateManager::_loadMetadata(AppState &app) {
|
||||
EEPROM.get(METADATA_START_ADDR, metadata);
|
||||
app.selected_save_slot = metadata.selected_save_slot;
|
||||
app.encoder_reversed = metadata.encoder_reversed;
|
||||
app.rotate_display = metadata.rotate_display;
|
||||
interrupts();
|
||||
}
|
||||
@ -57,6 +57,7 @@ public:
|
||||
// Additional global/hardware settings
|
||||
byte selected_save_slot;
|
||||
bool encoder_reversed;
|
||||
bool rotate_display;
|
||||
};
|
||||
struct ChannelState {
|
||||
byte base_clock_mod_index;
|
||||
|
||||
Reference in New Issue
Block a user