nfc_worker.h 898 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "nfc_device.h"
  3. typedef struct NfcWorker NfcWorker;
  4. typedef enum {
  5. // Init states
  6. NfcWorkerStateNone,
  7. NfcWorkerStateBroken,
  8. NfcWorkerStateReady,
  9. // Main worker states
  10. NfcWorkerStateDetect,
  11. NfcWorkerStateEmulate,
  12. NfcWorkerStateReadEMVApp,
  13. NfcWorkerStateReadEMV,
  14. NfcWorkerStateEmulateApdu,
  15. NfcWorkerStateField,
  16. NfcWorkerStateReadMifareUl,
  17. NfcWorkerStateEmulateMifareUl,
  18. // Transition
  19. NfcWorkerStateStop,
  20. } NfcWorkerState;
  21. typedef void (*NfcWorkerCallback)(void* context);
  22. NfcWorker* nfc_worker_alloc();
  23. NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
  24. void nfc_worker_free(NfcWorker* nfc_worker);
  25. void nfc_worker_start(
  26. NfcWorker* nfc_worker,
  27. NfcWorkerState state,
  28. NfcDeviceData* dev_data,
  29. NfcWorkerCallback callback,
  30. void* context);
  31. void nfc_worker_stop(NfcWorker* nfc_worker);