Cathy Nguyen 2 лет назад
Родитель
Сommit
037054fe70
1 измененных файлов с 138 добавлено и 102 удалено
  1. 138 102
      tama_p1.c

+ 138 - 102
tama_p1.c

@@ -37,6 +37,11 @@ static const Icon* icons_list[] = {
     &I_icon_7,
     &I_icon_7,
 };
 };
 
 
+static InputKey m = InputKeyUp;
+static InputKey a = InputKeyLeft;
+static InputKey b = InputKeyDown;
+static InputKey c = InputKeyRight;
+
 // static void draw_landscape(Canvas* const canvas, void* cb_ctx)
 // static void draw_landscape(Canvas* const canvas, void* cb_ctx)
 static void draw_landscape(Canvas* const canvas, uint8_t scale) {
 static void draw_landscape(Canvas* const canvas, uint8_t scale) {
     // FURI_LOG_D(TAG, "Drawing frame");
     // FURI_LOG_D(TAG, "Drawing frame");
@@ -831,11 +836,16 @@ int32_t tama_p1_app(void* p) {
                     event.input.sequence,
                     event.input.sequence,
                     event.input.key,
                     event.input.key,
                     event.input.type);
                     event.input.type);
-                InputType input_type = event.input.type;
-                btn_state_t tama_btn_state = 0;
+                InputType input_type = event.input.type; // idk why this is a variable
+                btn_state_t tama_btn_state = 0; // BTN_STATE_RELEASED is 0
 
 
                 if(in_menu) {
                 if(in_menu) {
+                    if(menu_cursor == 2 &&
+                       (event.input.key == InputKeyUp || event.input.key == InputKeyDown)) {
+                        tama_btn_state = BTN_STATE_RELEASED;
+                    }
                     if(event.input.key == InputKeyBack) {
                     if(event.input.key == InputKeyBack) {
+                        tama_btn_state = BTN_STATE_RELEASED;
                         in_menu = false;
                         in_menu = false;
                     } else if(event.input.key == InputKeyUp && event.input.type == InputTypePress) {
                     } else if(event.input.key == InputKeyUp && event.input.type == InputTypePress) {
                         if(menu_cursor > 0) {
                         if(menu_cursor > 0) {
@@ -863,12 +873,38 @@ int32_t tama_p1_app(void* p) {
                             switch(layout_mode) {
                             switch(layout_mode) {
                             case 0:
                             case 0:
                                 layout_mode = 4;
                                 layout_mode = 4;
+                                m = InputKeyRight;
+                                a = InputKeyUp;
+                                b = InputKeyLeft;
+                                c = InputKeyDown;
                                 break;
                                 break;
                             case 1:
                             case 1:
+                                layout_mode -= 1; // 0
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
+                                break;
                             case 2:
                             case 2:
+                                layout_mode -= 1; // 1
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
+                                break;
                             case 3:
                             case 3:
+                                layout_mode -= 1; // 2
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
+                                break;
                             case 4:
                             case 4:
-                                layout_mode -= 1;
+                                layout_mode -= 1; // 3
+                                m = InputKeyLeft;
+                                a = InputKeyDown;
+                                b = InputKeyRight;
+                                c = InputKeyUp;
                                 break;
                                 break;
                             }
                             }
                             break;
                             break;
@@ -876,6 +912,7 @@ int32_t tama_p1_app(void* p) {
                             speed_down();
                             speed_down();
                             break;
                             break;
                         case 2:
                         case 2:
+                            tama_btn_state = BTN_STATE_RELEASED;
                             switch(sub_menu_buttons) {
                             switch(sub_menu_buttons) {
                             case 0:
                             case 0:
                                 sub_menu_buttons = 3;
                                 sub_menu_buttons = 3;
@@ -910,13 +947,39 @@ int32_t tama_p1_app(void* p) {
                         case 0:
                         case 0:
                             switch(layout_mode) {
                             switch(layout_mode) {
                             case 0:
                             case 0:
+                                layout_mode += 1; // 1
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
+                                break;
                             case 1:
                             case 1:
+                                layout_mode += 1; // 2
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
+                                break;
                             case 2:
                             case 2:
+                                layout_mode += 1; // 3
+                                m = InputKeyLeft;
+                                a = InputKeyDown;
+                                b = InputKeyRight;
+                                c = InputKeyUp;
+                                break;
                             case 3:
                             case 3:
-                                layout_mode += 1;
+                                layout_mode += 1; // 4
+                                m = InputKeyRight;
+                                a = InputKeyUp;
+                                b = InputKeyLeft;
+                                c = InputKeyDown;
                                 break;
                                 break;
                             case 4:
                             case 4:
                                 layout_mode = 0;
                                 layout_mode = 0;
+                                m = InputKeyUp;
+                                a = InputKeyLeft;
+                                b = InputKeyDown;
+                                c = InputKeyRight;
                                 break;
                                 break;
                             }
                             }
                             break;
                             break;
@@ -924,6 +987,7 @@ int32_t tama_p1_app(void* p) {
                             speed_up();
                             speed_up();
                             break;
                             break;
                         case 2:
                         case 2:
+                            tama_btn_state = BTN_STATE_RELEASED;
                             switch(sub_menu_buttons) {
                             switch(sub_menu_buttons) {
                             case 0:
                             case 0:
                             case 1:
                             case 1:
@@ -959,13 +1023,39 @@ int32_t tama_p1_app(void* p) {
                             if(event.input.type == InputTypePress) {
                             if(event.input.type == InputTypePress) {
                                 switch(layout_mode) {
                                 switch(layout_mode) {
                                 case 0:
                                 case 0:
+                                    layout_mode += 1; // 1
+                                    m = InputKeyUp;
+                                    a = InputKeyLeft;
+                                    b = InputKeyDown;
+                                    c = InputKeyRight;
+                                    break;
                                 case 1:
                                 case 1:
+                                    layout_mode += 1; // 2
+                                    m = InputKeyUp;
+                                    a = InputKeyLeft;
+                                    b = InputKeyDown;
+                                    c = InputKeyRight;
+                                    break;
                                 case 2:
                                 case 2:
+                                    layout_mode += 1; // 3
+                                    m = InputKeyLeft;
+                                    a = InputKeyDown;
+                                    b = InputKeyRight;
+                                    c = InputKeyUp;
+                                    break;
                                 case 3:
                                 case 3:
-                                    layout_mode += 1;
+                                    layout_mode += 1; // 4
+                                    m = InputKeyRight;
+                                    a = InputKeyUp;
+                                    b = InputKeyLeft;
+                                    c = InputKeyDown;
                                     break;
                                     break;
                                 case 4:
                                 case 4:
                                     layout_mode = 0;
                                     layout_mode = 0;
+                                    m = InputKeyUp;
+                                    a = InputKeyLeft;
+                                    b = InputKeyDown;
+                                    c = InputKeyRight;
                                     break;
                                     break;
                                 }
                                 }
                             }
                             }
@@ -1033,7 +1123,7 @@ int32_t tama_p1_app(void* p) {
                         }
                         }
                     }
                     }
 
 
-                } else { // out of menu
+                } else { // out of menu // TODO: clean up code -.-
                     if(event.input.key == InputKeyBack && event.input.type == InputTypeLong) {
                     if(event.input.key == InputKeyBack && event.input.type == InputTypeLong) {
                         if(speed != 1) {
                         if(speed != 1) {
                             // speed = 1;
                             // speed = 1;
@@ -1044,106 +1134,52 @@ int32_t tama_p1_app(void* p) {
                         tama_p1_save_state();
                         tama_p1_save_state();
                         running = false;
                         running = false;
                     }
                     }
+                    // else if(event.input.key != InputKeyBack) {
+                    //     switch(layout_mode) {
+                    //     case 0:
+                    //     case 1:
+                    //     case 2:
+                    //         m = InputKeyUp;
+                    //         a = InputKeyLeft;
+                    //         b = InputKeyDown;
+                    //         c = InputKeyRight;
+                    //         break;
+                    //     case 3:
+                    //         m = InputKeyLeft;
+                    //         a = InputKeyDown;
+                    //         b = InputKeyRight;
+                    //         c = InputKeyUp;
+                    //         break;
+                    //     case 4:
+                    //         m = InputKeyRight;
+                    //         a = InputKeyUp;
+                    //         b = InputKeyLeft;
+                    //         c = InputKeyDown;
+                    //         break;
+                    //     default:
+                    //         break;
+                    //     }
+                    // }
                     if(input_type == InputTypePress || input_type == InputTypeRelease) {
                     if(input_type == InputTypePress || input_type == InputTypeRelease) {
-                        if(event.input.key != InputKeyBack) { // TODO: clean up code -.-
-                            switch(layout_mode) {
-                            case 0:
-                            case 1:
-                            case 2:
-                                if(event.input.key != InputKeyUp) {
-                                    if(input_type == InputTypePress)
-                                        tama_btn_state = BTN_STATE_PRESSED;
-                                    else if(input_type == InputTypeRelease)
-                                        tama_btn_state = BTN_STATE_RELEASED;
-                                }
-                                break;
-                            case 3:
-                                if(event.input.key != InputKeyLeft) {
-                                    if(input_type == InputTypePress)
-                                        tama_btn_state = BTN_STATE_PRESSED;
-                                    else if(input_type == InputTypeRelease)
-                                        tama_btn_state = BTN_STATE_RELEASED;
-                                }
-                                break;
-                            case 4:
-                                if(event.input.key != InputKeyRight) {
-                                    if(input_type == InputTypePress)
-                                        tama_btn_state = BTN_STATE_PRESSED;
-                                    else if(input_type == InputTypeRelease)
-                                        tama_btn_state = BTN_STATE_RELEASED;
-                                }
-                                break;
-                            default:
-                                break;
-                            }
+                        if(event.input.key != InputKeyBack && event.input.key != m) {
+                            if(input_type == InputTypePress)
+                                tama_btn_state = BTN_STATE_PRESSED;
+                            else if(input_type == InputTypeRelease)
+                                tama_btn_state = BTN_STATE_RELEASED;
+                        } else {
+                            tama_btn_state = BTN_STATE_RELEASED;
                         }
                         }
-                        if(input_type == InputTypePress)
-                            tama_btn_state = BTN_STATE_PRESSED;
-                        else if(input_type == InputTypeRelease)
+                        if(event.input.key == m) {
                             tama_btn_state = BTN_STATE_RELEASED;
                             tama_btn_state = BTN_STATE_RELEASED;
-
-                        if(event.input.key == InputKeyOk) {
+                            in_menu = true;
+                        } else if(event.input.key == a) {
+                            tamalib_set_button(BTN_LEFT, tama_btn_state);
+                        } else if(event.input.key == b) {
+                            tamalib_set_button(BTN_MIDDLE, tama_btn_state);
+                        } else if(event.input.key == c) {
+                            tamalib_set_button(BTN_RIGHT, tama_btn_state);
+                        } else if(event.input.key == InputKeyOk) {
                             tamalib_set_button(BTN_MIDDLE, tama_btn_state);
                             tamalib_set_button(BTN_MIDDLE, tama_btn_state);
-                        }
-                        switch(layout_mode) {
-                        case 0:
-                        case 1:
-                        case 2:
-                            switch(event.input.key) {
-                            case InputKeyUp:
-                                in_menu = true;
-                                break;
-                            case InputKeyLeft:
-                                tamalib_set_button(BTN_LEFT, tama_btn_state);
-                                break;
-                            case InputKeyDown:
-                                tamalib_set_button(BTN_MIDDLE, tama_btn_state);
-                                break;
-                            case InputKeyRight:
-                                tamalib_set_button(BTN_RIGHT, tama_btn_state);
-                                break;
-                            default:
-                                break;
-                            }
-                            break;
-                        case 3:
-                            switch(event.input.key) {
-                            case InputKeyLeft:
-                                in_menu = true;
-                                break;
-                            case InputKeyDown:
-                                tamalib_set_button(BTN_LEFT, tama_btn_state);
-                                break;
-                            case InputKeyRight:
-                                tamalib_set_button(BTN_MIDDLE, tama_btn_state);
-                                break;
-                            case InputKeyUp:
-                                tamalib_set_button(BTN_RIGHT, tama_btn_state);
-                                break;
-                            default:
-                                break;
-                            }
-                            break;
-                        case 4:
-                            switch(event.input.key) {
-                            case InputKeyRight:
-                                in_menu = true;
-                                break;
-                            case InputKeyUp:
-                                tamalib_set_button(BTN_LEFT, tama_btn_state);
-                                break;
-                            case InputKeyLeft:
-                                tamalib_set_button(BTN_MIDDLE, tama_btn_state);
-                                break;
-                            case InputKeyDown:
-                                tamalib_set_button(BTN_RIGHT, tama_btn_state);
-                                break;
-                            default:
-                                break;
-                            }
-                            break;
-                        default:
-                            break;
                         }
                         }
                     }
                     }
                 }
                 }