subghz_protocol_raw.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. #include "subghz_protocol_common.h"
  3. typedef void (*SubGhzProtocolRAWCallbackEnd)(void* context);
  4. typedef struct SubGhzProtocolRAW SubGhzProtocolRAW;
  5. /** Allocate SubGhzProtocolRAW
  6. *
  7. * @return SubGhzProtocolRAW*
  8. */
  9. SubGhzProtocolRAW* subghz_protocol_raw_alloc();
  10. /** Free SubGhzProtocolRAW
  11. *
  12. * @param instance
  13. */
  14. void subghz_protocol_raw_free(SubGhzProtocolRAW* instance);
  15. void subghz_protocol_raw_file_encoder_worker_set_callback_end(
  16. SubGhzProtocolRAW* instance,
  17. SubGhzProtocolRAWCallbackEnd callback_end,
  18. void* context_end);
  19. /** Reset internal state
  20. * @param instance - SubGhzProtocolRAW instance
  21. */
  22. void subghz_protocol_raw_reset(SubGhzProtocolRAW* instance);
  23. /** Get upload protocol
  24. *
  25. * @param instance - SubGhzProtocolRAW instance
  26. * @param encoder - SubGhzProtocolCommonEncoder encoder
  27. * @return bool
  28. */
  29. bool subghz_protocol_raw_send_key(
  30. SubGhzProtocolRAW* instance,
  31. SubGhzProtocolCommonEncoder* encoder);
  32. /** Parse accepted duration
  33. *
  34. * @param instance - SubGhzProtocolRAW instance
  35. * @param data - LevelDuration level_duration
  36. */
  37. void subghz_protocol_raw_parse(SubGhzProtocolRAW* instance, bool level, uint32_t duration);
  38. /** Outputting information from the parser
  39. *
  40. * @param instance - SubGhzProtocolRAW* instance
  41. * @param output - output string
  42. */
  43. void subghz_protocol_raw_to_str(SubGhzProtocolRAW* instance, string_t output);
  44. const char* subghz_protocol_raw_get_last_file_name(SubGhzProtocolRAW* instance);
  45. void subghz_protocol_raw_set_last_file_name(SubGhzProtocolRAW* instance, const char* name);
  46. bool subghz_protocol_raw_save_to_file_init(
  47. SubGhzProtocolRAW* instance,
  48. const char* dev_name,
  49. uint32_t frequency,
  50. const char* preset);
  51. void subghz_protocol_raw_save_to_file_stop(SubGhzProtocolRAW* instance);
  52. bool subghz_protocol_raw_save_to_file_write(SubGhzProtocolRAW* instance);
  53. size_t subghz_protocol_raw_get_sample_write(SubGhzProtocolRAW* instance);
  54. bool subghz_protocol_raw_to_load_protocol_from_file(
  55. FlipperFile* flipper_file,
  56. SubGhzProtocolRAW* instance,
  57. const char* file_path);