avr_isp_worker.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <furi_hal.h>
  3. typedef struct AvrIspWorker AvrIspWorker;
  4. typedef void (*AvrIspWorkerCallback)(void* context, bool connect_usb);
  5. /** Allocate AvrIspWorker
  6. *
  7. * @param context AvrIsp* context
  8. * @return AvrIspWorker*
  9. */
  10. AvrIspWorker* avr_isp_worker_alloc(void* context);
  11. /** Free AvrIspWorker
  12. *
  13. * @param instance AvrIspWorker instance
  14. */
  15. void avr_isp_worker_free(AvrIspWorker* instance);
  16. /** Callback AvrIspWorker
  17. *
  18. * @param instance AvrIspWorker instance
  19. * @param callback AvrIspWorkerOverrunCallback callback
  20. * @param context
  21. */
  22. void avr_isp_worker_set_callback(
  23. AvrIspWorker* instance,
  24. AvrIspWorkerCallback callback,
  25. void* context);
  26. /** Start AvrIspWorker
  27. *
  28. * @param instance AvrIspWorker instance
  29. */
  30. void avr_isp_worker_start(AvrIspWorker* instance);
  31. /** Stop AvrIspWorker
  32. *
  33. * @param instance AvrIspWorker instance
  34. */
  35. void avr_isp_worker_stop(AvrIspWorker* instance);
  36. /** Check if worker is running
  37. * @param instance AvrIspWorker instance
  38. * @return bool - true if running
  39. */
  40. bool avr_isp_worker_is_running(AvrIspWorker* instance);