Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nfc/nfc_worker.h')
-rwxr-xr-xlib/nfc/nfc_worker.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/nfc/nfc_worker.h b/lib/nfc/nfc_worker.h
new file mode 100755
index 00000000..f6df406b
--- /dev/null
+++ b/lib/nfc/nfc_worker.h
@@ -0,0 +1,71 @@
+#pragma once
+
+#include "nfc_device.h"
+
+typedef struct NfcWorker NfcWorker;
+
+typedef enum {
+ // Init states
+ NfcWorkerStateNone,
+ NfcWorkerStateBroken,
+ NfcWorkerStateReady,
+ // Main worker states
+ NfcWorkerStateRead,
+ NfcWorkerStateUidEmulate,
+ NfcWorkerStateMfUltralightEmulate,
+ NfcWorkerStateMfClassicEmulate,
+ NfcWorkerStateMfClassicUserDictAttack,
+ NfcWorkerStateMfClassicFlipperDictAttack,
+ // Debug
+ NfcWorkerStateEmulateApdu,
+ NfcWorkerStateField,
+ // Transition
+ NfcWorkerStateStop,
+} NfcWorkerState;
+
+typedef enum {
+ // Reserve first 50 events for application events
+ NfcWorkerEventReserved = 50,
+
+ // Nfc read events
+ NfcWorkerEventReadUidNfcB,
+ NfcWorkerEventReadUidNfcV,
+ NfcWorkerEventReadUidNfcF,
+ NfcWorkerEventReadUidNfcA,
+ NfcWorkerEventReadMfUltralight,
+ NfcWorkerEventReadMfDesfire,
+ NfcWorkerEventReadMfClassicDone,
+ NfcWorkerEventReadMfClassicLoadKeyCache,
+ NfcWorkerEventReadMfClassicDictAttackRequired,
+ NfcWorkerEventReadBankCard,
+
+ // Nfc worker common events
+ NfcWorkerEventSuccess,
+ NfcWorkerEventFail,
+ NfcWorkerEventAborted,
+ NfcWorkerEventCardDetected,
+ NfcWorkerEventNoCardDetected,
+
+ // Mifare Classic events
+ NfcWorkerEventNoDictFound,
+ NfcWorkerEventNewSector,
+ NfcWorkerEventFoundKeyA,
+ NfcWorkerEventFoundKeyB,
+} NfcWorkerEvent;
+
+typedef bool (*NfcWorkerCallback)(NfcWorkerEvent event, void* context);
+
+NfcWorker* nfc_worker_alloc();
+
+NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
+
+void nfc_worker_free(NfcWorker* nfc_worker);
+
+void nfc_worker_start(
+ NfcWorker* nfc_worker,
+ NfcWorkerState state,
+ NfcDeviceData* dev_data,
+ NfcWorkerCallback callback,
+ void* context);
+
+void nfc_worker_stop(NfcWorker* nfc_worker);