desktop_scene_debug.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include <dolphin/dolphin.h>
  2. #include <dolphin/helpers/dolphin_deed.h>
  3. #include "../desktop_i.h"
  4. #include "../views/desktop_view_debug.h"
  5. #include "desktop_scene.h"
  6. void desktop_scene_debug_callback(DesktopEvent event, void* context) {
  7. Desktop* desktop = (Desktop*)context;
  8. view_dispatcher_send_custom_event(desktop->view_dispatcher, event);
  9. }
  10. void desktop_scene_debug_on_enter(void* context) {
  11. Desktop* desktop = (Desktop*)context;
  12. desktop_debug_get_dolphin_data(desktop->debug_view);
  13. desktop_debug_set_callback(desktop->debug_view, desktop_scene_debug_callback, desktop);
  14. view_dispatcher_switch_to_view(desktop->view_dispatcher, DesktopViewIdDebug);
  15. }
  16. bool desktop_scene_debug_on_event(void* context, SceneManagerEvent event) {
  17. Desktop* desktop = (Desktop*)context;
  18. Dolphin* dolphin = furi_record_open("dolphin");
  19. bool consumed = false;
  20. if(event.type == SceneManagerEventTypeCustom) {
  21. switch(event.event) {
  22. case DesktopDebugEventExit:
  23. scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain);
  24. dolphin_flush(dolphin);
  25. consumed = true;
  26. break;
  27. case DesktopDebugEventDeed:
  28. dolphin_deed(dolphin, DolphinDeedTestRight);
  29. desktop_debug_get_dolphin_data(desktop->debug_view);
  30. consumed = true;
  31. break;
  32. case DesktopDebugEventWrongDeed:
  33. dolphin_deed(dolphin, DolphinDeedTestLeft);
  34. desktop_debug_get_dolphin_data(desktop->debug_view);
  35. consumed = true;
  36. break;
  37. case DesktopDebugEventSaveState:
  38. dolphin_flush(dolphin);
  39. consumed = true;
  40. break;
  41. default:
  42. break;
  43. }
  44. }
  45. furi_record_close("dolphin");
  46. return consumed;
  47. }
  48. void desktop_scene_debug_on_exit(void* context) {
  49. Desktop* desktop = (Desktop*)context;
  50. desktop_debug_reset_screen_idx(desktop->debug_view);
  51. }