diff --git a/applications/services/desktop/scenes/desktop_scene_main.c b/applications/services/desktop/scenes/desktop_scene_main.c index 341ad1fb5..8a2147f91 100644 --- a/applications/services/desktop/scenes/desktop_scene_main.c +++ b/applications/services/desktop/scenes/desktop_scene_main.c @@ -195,6 +195,46 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) { } break; } + case DesktopMainEventOpenTetris: { + LoaderStatus status = loader_start( + desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("/apps/Games/Tetris.fap")); + if(status != LoaderStatusOk) { + FURI_LOG_E(TAG, "loader_start failed: %d", status); + } + break; + } + case DesktopMainEventOpenArkanoid: { + LoaderStatus status = loader_start( + desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("/apps/Games/Arkanoid.fap")); + if(status != LoaderStatusOk) { + FURI_LOG_E(TAG, "loader_start failed: %d", status); + } + break; + } + case DesktopMainEventOpenDOOM: { + LoaderStatus status = loader_start( + desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("/apps/Games/DOOM.fap")); + if(status != LoaderStatusOk) { + FURI_LOG_E(TAG, "loader_start failed: %d", status); + } + break; + } + case DesktopMainEventOpenZombiez: { + LoaderStatus status = loader_start( + desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("/apps/Games/Zombiez.fap")); + if(status != LoaderStatusOk) { + FURI_LOG_E(TAG, "loader_start failed: %d", status); + } + break; + } + case DesktopMainEventOpenHeap: { + LoaderStatus status = loader_start( + desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("/apps/Games/heap_defence.fap")); + if(status != LoaderStatusOk) { + FURI_LOG_E(TAG, "loader_start failed: %d", status); + } + break; + } case DesktopLockedEventUpdate: desktop_view_locked_update(desktop->locked_view); consumed = true; diff --git a/applications/services/desktop/views/desktop_events.h b/applications/services/desktop/views/desktop_events.h index 37413da2e..6917dbe73 100644 --- a/applications/services/desktop/views/desktop_events.h +++ b/applications/services/desktop/views/desktop_events.h @@ -12,6 +12,11 @@ typedef enum { DesktopMainEventLock, DesktopMainEventOpenGameMenu, + DesktopMainEventOpenTetris, + DesktopMainEventOpenArkanoid, + DesktopMainEventOpenDOOM, + DesktopMainEventOpenZombiez, + DesktopMainEventOpenHeap, DesktopLockedEventUnlocked, DesktopLockedEventUpdate, diff --git a/applications/services/desktop/views/desktop_view_main.c b/applications/services/desktop/views/desktop_view_main.c index f893566fd..b2beb538f 100644 --- a/applications/services/desktop/views/desktop_view_main.c +++ b/applications/services/desktop/views/desktop_view_main.c @@ -69,20 +69,41 @@ bool desktop_main_input_callback(InputEvent* event, void* context) { main_view->callback(DesktopMainEventOpenFavoriteSecondary, main_view->context); } else if(event->key == InputKeyUp) { main_view->callback(DesktopMainEventLock, main_view->context); + } else if(event->key == InputKeyOk) { + if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) { + main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context); + } } } } else { if(event->type == InputTypeShort) { if(event->key == InputKeyOk) { - main_view->callback(DesktopMainEventOpenGameMenu, main_view->context); + main_view->callback( + DesktopMainEventOpenGameMenu, main_view->context); // OPENS Snake } else if(event->key == InputKeyUp) { main_view->callback(DesktopMainEventOpenLockMenu, main_view->context); } else if(event->key == InputKeyDown) { - main_view->callback(DesktopMainEventOpenPassport, main_view->context); + main_view->callback( + DesktopMainEventOpenTetris, main_view->context); // OPENS Tetris } else if(event->key == InputKeyLeft) { - main_view->callback(DesktopMainEventOpenPassport, main_view->context); + main_view->callback( + DesktopMainEventOpenArkanoid, main_view->context); // OPENS Arkanoid } // Right key is handled by animation manager + } else if(event->type == InputTypeLong) { + if(event->key == InputKeyOk) { + if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) { + main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context); + } + } else if(event->key == InputKeyUp) { + main_view->callback(DesktopMainEventOpenDOOM, main_view->context); // OPENS DOOM + } else if(event->key == InputKeyDown) { + main_view->callback( + DesktopMainEventOpenZombiez, main_view->context); // OPENS Zombiez + } else if(event->key == InputKeyLeft) { + main_view->callback( + DesktopMainEventOpenHeap, main_view->context); // OPENS Heap Defence + } } }