lego-esp32s3-gameboy/components/nfc_manager/include/nfc_manager.h

49 lines
921 B
C

/**
* @file nfc_manager.h
* @brief NFC Manager for ROM selection via NFC tags
*/
#pragma once
#include <stdint.h>
#include <stdbool.h>
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
#define NFC_MAX_ROM_NAME 64
/**
* @brief NFC ROM mapping structure
*/
typedef struct {
uint8_t tag_uid[7]; // NFC tag UID
char rom_path[NFC_MAX_ROM_NAME]; // ROM file path on SD card
} nfc_rom_mapping_t;
/**
* @brief Initialize NFC manager
* @return ESP_OK on success
*/
esp_err_t nfc_manager_init(void);
/**
* @brief Check if NFC tag is present
* @return true if tag detected
*/
bool nfc_manager_tag_present(void);
/**
* @brief Read NFC tag and get ROM path
* @param rom_path Output buffer for ROM path
* @param max_len Maximum length of rom_path buffer
* @return ESP_OK if ROM mapping found
*/
esp_err_t nfc_manager_get_rom(char *rom_path, size_t max_len);
#ifdef __cplusplus
}
#endif