AppNearMe µNFC stack for the NXP PN532 chip License: You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!
Dependents: IOT_sensor_nfc AppNearMe_MuNFC_PN532_Test p2p_nfc_test NFCMoodLamp ... more
License
You can use the stack free of charge to prototype with mbed; if you want to use the stack with your commercial product, get in touch!
PN532/NdefCallback.h
- Committer:
- AppNearMe
- Date:
- 2012-08-07
- Revision:
- 3:0b949b2d3b55
- Parent:
- 0:480387549d89
File content as of revision 3:0b949b2d3b55:
/* NdefCallback.h Copyright (c) Donatien Garnier 2012 donatien.garnier@appnearme.com http://www.appnearme.com/ */ #ifndef NDEFCALLBACK_H_ #define NDEFCALLBACK_H_ #include "TLVList.h" #include "munfc/core/fwk.h" #include "munfc/ndef/appnearme_ndef.h" class NdefCallback { protected: NdefCallback(); //Callable by MuNFC void init(void (*fn)(appnearme_ndef_callback, void*)); void attach(void (*fn)(TLVList*, void*), void* arg); template <class T> void attach(T* inst, void (T::*member)(TLVList*)) { m_fn = NULL; m_inst = inst; m_member = member; m_caller = &NdefCallback::memberCaller<T>; } private: void callback(tlv_list* payload); //Data TLVList m_tlvList; //Function void(*m_fn)(TLVList*, void*); void* m_arg; //Member of object instance void* m_inst; void* m_member; void* (*m_caller)(TLVList*); template <class T> static inline void memberCaller(TLVList* tlvList) { T* inst = (T*) m_inst; void (T::*member)(TLVList*) = m_member; inst->member(tlvList); } static void staticCallback(tlv_list* payload, void* param); friend class MuNFC; }; #endif /* NDEFCALLBACK_H_ */