nfc_magic_worker.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <lib/nfc/nfc_device.h>
  3. #include "nfc_magic.h"
  4. typedef struct NfcMagicWorker NfcMagicWorker;
  5. typedef enum {
  6. NfcMagicWorkerStateReady,
  7. NfcMagicWorkerStateCheck,
  8. NfcMagicWorkerStateWrite,
  9. NfcMagicWorkerStateRekey,
  10. NfcMagicWorkerStateWipe,
  11. NfcMagicWorkerStateStop,
  12. } NfcMagicWorkerState;
  13. typedef enum {
  14. NfcMagicWorkerEventSuccess,
  15. NfcMagicWorkerEventFail,
  16. NfcMagicWorkerEventCardDetected,
  17. NfcMagicWorkerEventNoCardDetected,
  18. NfcMagicWorkerEventWrongCard,
  19. } NfcMagicWorkerEvent;
  20. typedef bool (*NfcMagicWorkerCallback)(NfcMagicWorkerEvent event, void* context);
  21. NfcMagicWorker* nfc_magic_worker_alloc();
  22. void nfc_magic_worker_free(NfcMagicWorker* nfc_magic_worker);
  23. void nfc_magic_worker_stop(NfcMagicWorker* nfc_magic_worker);
  24. void nfc_magic_worker_start(
  25. NfcMagicWorker* nfc_magic_worker,
  26. NfcMagicWorkerState state,
  27. NfcMagicDevice* magic_dev,
  28. NfcDeviceData* dev_data,
  29. uint32_t new_password,
  30. NfcMagicWorkerCallback callback,
  31. void* context);