#include #include #include "Nfc.h" namespace android { namespace hardware { namespace nfc { namespace V1_0 { namespace implementation { sp Nfc::mCallback = NULL; Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device) { } // Methods from ::android::hardware::nfc::V1_0::INfc follow. ::android::hardware::Return Nfc::open(const sp& clientCallback) { mCallback = clientCallback; return mDevice->open(mDevice, event_callback, data_callback); } ::android::hardware::Return Nfc::write(const nfc_data_t& data) { return mDevice->write(mDevice, data.data.size(), &data.data[0]); } ::android::hardware::Return Nfc::core_initialized(const hidl_vec& data) { hidl_vec copy = data; return mDevice->core_initialized(mDevice, ©[0]); } ::android::hardware::Return Nfc::pre_discover() { return mDevice->pre_discover(mDevice); } ::android::hardware::Return Nfc::close() { return mDevice->close(mDevice); } ::android::hardware::Return Nfc::control_granted() { return mDevice->control_granted(mDevice); } ::android::hardware::Return Nfc::power_cycle() { return mDevice->power_cycle(mDevice); } INfc* HIDL_FETCH_INfc(const char *hal) { nfc_nci_device_t* nfc_device; int ret = 0; const hw_module_t* hw_module = NULL; ret = hw_get_module (hal, &hw_module); if (ret == 0) { ret = nfc_nci_open (hw_module, &nfc_device); if (ret != 0) { ALOGE ("nfc_nci_open %s failed: %d", hal, ret); } } else ALOGE ("hw_get_module %s failed: %d", hal, ret); if (ret == 0) { return new Nfc(nfc_device); } else { ALOGE("Passthrough failed to load legacy HAL."); return nullptr; } } } // namespace implementation } // namespace V1_0 } // namespace nfc } // namespace hardware } // namespace android