meal_pager_scene_set_station.c 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include "../meal_pager_i.h"
  2. #include "../helpers/meal_pager_custom_event.h"
  3. #include "../helpers/meal_pager_storage.h"
  4. #include "../helpers/retekess/meal_pager_retekess_t119.h"
  5. #include "../helpers/retekess/meal_pager_retekess_td157.h"
  6. #include "../helpers/retekess/meal_pager_retekess_td165.h"
  7. #include "../helpers/retekess/meal_pager_retekess_td174.h"
  8. #include "../views/meal_pager_transmit.h"
  9. #include "../helpers/meal_pager_led.h"
  10. #include "../helpers/subghz/subghz.h"
  11. #include "../views/meal_pager_transmit.h"
  12. #include <dolphin/dolphin.h>
  13. void meal_pager_set_station_callback(void* context) {
  14. furi_assert(context);
  15. Meal_Pager* app = context;
  16. view_dispatcher_send_custom_event(app->view_dispatcher, Meal_PagerCustomerEventIntInput);
  17. }
  18. /*static void meal_pager_int_input_callback(void* context) {
  19. furi_assert(context);
  20. Meal_Pager* app = context;
  21. view_dispatcher_send_custom_event(app->view_dispatcher, Meal_PagerCustomerEventIntInput);
  22. }*/
  23. void meal_pager_scene_set_station_on_enter(void* context) {
  24. furi_assert(context);
  25. Meal_Pager* app = context;
  26. IntInput* int_input = app->int_input;
  27. size_t enter_name_length = 4;
  28. meal_pager_set_max_values(app);
  29. char *str = "Set first Station (0 - 9999)";
  30. const char *constStr = str;
  31. snprintf(str, 36, "Set first Station (0 - %lu)", app->max_station);
  32. int_input_set_header_text(int_input, constStr);
  33. int_input_set_result_callback(
  34. int_input,
  35. meal_pager_set_station_callback,
  36. context,
  37. app->text_buffer,
  38. enter_name_length,
  39. false);
  40. UNUSED(app);
  41. UNUSED(enter_name_length);
  42. view_dispatcher_switch_to_view(app->view_dispatcher, Meal_PagerViewIdIntInput);
  43. }
  44. bool meal_pager_scene_set_station_on_event(void* context, SceneManagerEvent event) {
  45. Meal_Pager* app = context;
  46. bool consumed = false;
  47. if(event.type == SceneManagerEventTypeBack) {
  48. scene_manager_previous_scene(app->scene_manager);
  49. return true;
  50. } else if(event.type == SceneManagerEventTypeCustom) {
  51. switch(event.event) {
  52. case Meal_PagerCustomEventTransmitLeft:
  53. case Meal_PagerCustomEventTransmitRight:
  54. break;
  55. case Meal_PagerCustomEventTransmitUp:
  56. case Meal_PagerCustomEventTransmitDown:
  57. break;
  58. case Meal_PagerCustomEventTransmitBack:
  59. if(!scene_manager_search_and_switch_to_previous_scene(
  60. app->scene_manager, Meal_PagerSceneMenu)) {
  61. scene_manager_stop(app->scene_manager);
  62. view_dispatcher_stop(app->view_dispatcher);
  63. }
  64. consumed = true;
  65. break;
  66. }
  67. } else if(event.type == SceneManagerEventTypeTick) {
  68. if(app->state_notifications == SubGhzNotificationStateTx) {
  69. app->state_notifications = SubGhzNotificationStateIDLE;
  70. subghz_txrx_stop(app->subghz->txrx);
  71. meal_pager_blink_stop(app);
  72. meal_pager_transmit_model_set_sending(app->meal_pager_transmit, 0);
  73. }
  74. return true;
  75. }
  76. return consumed;
  77. }
  78. void meal_pager_scene_set_station_on_exit(void* context) {
  79. Meal_Pager* app = context;
  80. UNUSED(app);
  81. }