* nfc: add save name and save success scenes * applications: increase nfc app stack size to 4k * nfc: move nfc device data to separate file * nfc: add nfc device save to SD card * nfc: add file select scene * nfc: add saved key menu scene * nfc: add manual SAK, ATQA, UID enter * nfc: add manual enter * nfc scenes: remove typedef in SubmenuIndex enu * nfc_device: close file_worker after load data Co-authored-by: あく <alleteam@gmail.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include "nfc_device.h"
 | |
| 
 | |
| typedef struct {
 | |
|     union {
 | |
|         NfcDeviceData nfc_detect_data;
 | |
|         NfcEmvData nfc_emv_data;
 | |
|         NfcMifareUlData nfc_mifare_ul_data;
 | |
|     };
 | |
| } NfcWorkerResult;
 | |
| 
 | |
| typedef struct NfcWorker NfcWorker;
 | |
| 
 | |
| typedef enum {
 | |
|     // Init states
 | |
|     NfcWorkerStateNone,
 | |
|     NfcWorkerStateBroken,
 | |
|     NfcWorkerStateReady,
 | |
|     // Main worker states
 | |
|     NfcWorkerStateDetect,
 | |
|     NfcWorkerStateEmulate,
 | |
|     NfcWorkerStateReadEMV,
 | |
|     NfcWorkerStateEmulateEMV,
 | |
|     NfcWorkerStateField,
 | |
|     NfcWorkerStateReadMfUltralight,
 | |
|     // Transition
 | |
|     NfcWorkerStateStop,
 | |
| } NfcWorkerState;
 | |
| 
 | |
| typedef void (*NfcWorkerCallback)(void* context);
 | |
| 
 | |
| NfcWorker* nfc_worker_alloc();
 | |
| 
 | |
| NfcWorkerState nfc_worker_get_state(NfcWorker* nfc_worker);
 | |
| 
 | |
| ReturnCode nfc_worker_get_error(NfcWorker* nfc_worker);
 | |
| 
 | |
| void nfc_worker_set_emulation_params(NfcWorker* nfc_worker, NfcDeviceData* data);
 | |
| 
 | |
| void nfc_worker_free(NfcWorker* nfc_worker);
 | |
| 
 | |
| void nfc_worker_start(
 | |
|     NfcWorker* nfc_worker,
 | |
|     NfcWorkerState state,
 | |
|     NfcWorkerResult* result_dest,
 | |
|     NfcWorkerCallback callback,
 | |
|     void* context);
 | |
| 
 | |
| void nfc_worker_stop(NfcWorker* nfc_worker);
 |