input_event.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "input_event.h"
  2. void cycle_focus(FlizzerTrackerApp *tracker)
  3. {
  4. switch (tracker->mode)
  5. {
  6. case PATTERN_VIEW:
  7. {
  8. tracker->focus++;
  9. if (tracker->focus > EDIT_SONGINFO)
  10. {
  11. tracker->focus = EDIT_PATTERN;
  12. }
  13. }
  14. default:
  15. break;
  16. }
  17. }
  18. void process_input_event(FlizzerTrackerApp *tracker, FlizzerTrackerEvent *event)
  19. {
  20. /*if(event->input.key == InputKeyBack && event->input.type == InputTypeShort && event->period > 0 && event->period < 200)
  21. {
  22. cycle_focus(tracker);
  23. }*/
  24. if (event->input.key == InputKeyBack && event->input.type == InputTypeShort && !(tracker->editing))
  25. {
  26. cycle_focus(tracker);
  27. return;
  28. }
  29. // Если нажата кнопка "назад", то выходим из цикла, а следовательно и из приложения
  30. if (event->input.key == InputKeyBack && event->input.type == InputTypeLong)
  31. {
  32. tracker->quit = true;
  33. return;
  34. }
  35. switch (tracker->focus)
  36. {
  37. case EDIT_PATTERN:
  38. {
  39. pattern_edit_event(tracker, event);
  40. break;
  41. }
  42. case EDIT_SEQUENCE:
  43. {
  44. sequence_edit_event(tracker, event);
  45. break;
  46. }
  47. case EDIT_SONGINFO:
  48. {
  49. songinfo_edit_event(tracker, event);
  50. break;
  51. }
  52. default:
  53. break;
  54. }
  55. }