unleashed-firmware/lib/nfc/nfc_device_i.h
gornekich d92b0a82cc
NFC refactoring (#3050)
"A long time ago in a galaxy far, far away...." we started NFC subsystem refactoring.

Starring:

- @gornekich - NFC refactoring project lead, architect, senior developer
- @gsurkov - architect, senior developer
- @RebornedBrain - senior developer

Supporting roles:

- @skotopes, @DrZlo13, @hedger - general architecture advisors, code review
- @Astrrra, @doomwastaken, @Hellitron, @ImagineVagon333 - quality assurance

Special thanks:

@bettse, @pcunning, @nxv, @noproto, @AloneLiberty and everyone else who has been helping us all this time and contributing valuable knowledges, ideas and source code.
2023-10-24 12:08:09 +09:00

46 lines
1.3 KiB
C

/**
* @file nfc_device_i.h
* @brief NfcDevice private types and definitions.
*
* This file is an implementation detail. It must not be included in
* any public API-related headers.
*/
#pragma once
#include "nfc_device.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief NfcDevice structure definition.
*/
struct NfcDevice {
NfcProtocol protocol; /**< Numeric identifier of the data's protocol*/
NfcDeviceData* protocol_data; /**< Pointer to the NFC device data. */
NfcLoadingCallback
loading_callback; /**< Pointer to the function to be called upon loading completion. */
void* loading_callback_context; /**< Pointer to the context to be passed to the loading callback. */
};
/**
* @brief Get the mutable (non-const) data from an NfcDevice instance.
*
* The behaviour is the same as with nfc_device_get_data(), but the
* return pointer is non-const, allowing for changing data it is pointing to.
*
* @see nfc_device.h
*
* Under the hood, nfc_device_get_data() calls this and then adds const-ness to the return value.
*
* @param instance pointer to the instance to be queried
* @param protocol protocol identifier of the data to be retrieved.
* @returns pointer to the instance's (mutable) data.
*/
NfcDeviceData* nfc_device_get_data_ptr(const NfcDevice* instance, NfcProtocol protocol);
#ifdef __cplusplus
}
#endif