pocsag_pager_app_i.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #pragma once
  2. #include "helpers/pocsag_pager_types.h"
  3. #include "helpers/radio_device_loader.h"
  4. #include "scenes/pocsag_pager_scene.h"
  5. #include <gui/gui.h>
  6. #include <gui/view_dispatcher.h>
  7. #include <gui/scene_manager.h>
  8. #include <gui/modules/submenu.h>
  9. #include <gui/modules/variable_item_list.h>
  10. #include <gui/modules/widget.h>
  11. #include <notification/notification_messages.h>
  12. #include "views/pocsag_pager_receiver.h"
  13. #include "views/pocsag_pager_receiver_info.h"
  14. #include "pocsag_pager_history.h"
  15. #include <lib/subghz/subghz_setting.h>
  16. #include <lib/subghz/subghz_worker.h>
  17. #include <lib/subghz/receiver.h>
  18. #include <lib/subghz/transmitter.h>
  19. #include <lib/subghz/registry.h>
  20. #include <lib/subghz/devices/devices.h>
  21. typedef struct POCSAGPagerApp POCSAGPagerApp;
  22. struct POCSAGPagerTxRx {
  23. SubGhzWorker* worker;
  24. SubGhzEnvironment* environment;
  25. SubGhzReceiver* receiver;
  26. SubGhzRadioPreset* preset;
  27. PCSGHistory* history;
  28. uint16_t idx_menu_chosen;
  29. PCSGTxRxState txrx_state;
  30. PCSGHopperState hopper_state;
  31. uint8_t hopper_timeout;
  32. uint8_t hopper_idx_frequency;
  33. PCSGRxKeyState rx_key_state;
  34. const SubGhzDevice* radio_device;
  35. };
  36. typedef struct POCSAGPagerTxRx POCSAGPagerTxRx;
  37. struct POCSAGPagerApp {
  38. Gui* gui;
  39. ViewDispatcher* view_dispatcher;
  40. POCSAGPagerTxRx* txrx;
  41. SceneManager* scene_manager;
  42. NotificationApp* notifications;
  43. VariableItemList* variable_item_list;
  44. Submenu* submenu;
  45. Widget* widget;
  46. PCSGReceiver* pcsg_receiver;
  47. PCSGReceiverInfo* pcsg_receiver_info;
  48. PCSGLock lock;
  49. SubGhzSetting* setting;
  50. };
  51. void pcsg_preset_init(
  52. void* context,
  53. const char* preset_name,
  54. uint32_t frequency,
  55. uint8_t* preset_data,
  56. size_t preset_data_size);
  57. void pcsg_get_frequency_modulation(
  58. POCSAGPagerApp* app,
  59. FuriString* frequency,
  60. FuriString* modulation);
  61. void pcsg_begin(POCSAGPagerApp* app, uint8_t* preset_data);
  62. uint32_t pcsg_rx(POCSAGPagerApp* app, uint32_t frequency);
  63. void pcsg_idle(POCSAGPagerApp* app);
  64. void pcsg_rx_end(POCSAGPagerApp* app);
  65. void pcsg_sleep(POCSAGPagerApp* app);
  66. void pcsg_hopper_update(POCSAGPagerApp* app);