nfc_worker.h 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. NfcWorkerStateReadMifareDesfire,
  19. // Transition
  20. NfcWorkerStateStop,
  21. } NfcWorkerState;
  22. typedef void (*NfcWorkerCallback)(void* context);
  23. NfcWorker* nfc_worker_alloc();
  24. NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
  25. void nfc_worker_free(NfcWorker* nfc_worker);
  26. void nfc_worker_start(
  27. NfcWorker* nfc_worker,
  28. NfcWorkerState state,
  29. NfcDeviceData* dev_data,
  30. NfcWorkerCallback callback,
  31. void* context);
  32. void nfc_worker_stop(NfcWorker* nfc_worker);