picopass_worker.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include "picopass_device.h"
  3. typedef struct PicopassWorker PicopassWorker;
  4. typedef enum {
  5. // Init states
  6. PicopassWorkerStateNone,
  7. PicopassWorkerStateBroken,
  8. PicopassWorkerStateReady,
  9. // Main worker states
  10. PicopassWorkerStateDetect,
  11. // Transition
  12. PicopassWorkerStateStop,
  13. } PicopassWorkerState;
  14. typedef enum {
  15. // Reserve first 50 events for application events
  16. PicopassWorkerEventReserved = 50,
  17. // Picopass worker common events
  18. PicopassWorkerEventSuccess,
  19. PicopassWorkerEventFail,
  20. PicopassWorkerEventNoCardDetected,
  21. PicopassWorkerEventStartReading,
  22. } PicopassWorkerEvent;
  23. typedef void (*PicopassWorkerCallback)(PicopassWorkerEvent event, void* context);
  24. PicopassWorker* picopass_worker_alloc();
  25. PicopassWorkerState picopass_worker_get_state(PicopassWorker* picopass_worker);
  26. void picopass_worker_free(PicopassWorker* picopass_worker);
  27. void picopass_worker_start(
  28. PicopassWorker* picopass_worker,
  29. PicopassWorkerState state,
  30. PicopassDeviceData* dev_data,
  31. PicopassWorkerCallback callback,
  32. void* context);
  33. void picopass_worker_stop(PicopassWorker* picopass_worker);