mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Test: make android.hardware.nfc@1.0-impl Change-Id: Ib76d663fcf28816bd2ba57f5fbd5ae0033b620f5
80 lines
2.0 KiB
C++
80 lines
2.0 KiB
C++
#define LOG_TAG "android.hardware.nfc@1.0-impl"
|
|
#include <utils/Log.h>
|
|
|
|
#include <hardware/hardware.h>
|
|
#include <hardware/nfc.h>
|
|
#include "Nfc.h"
|
|
|
|
namespace android {
|
|
namespace hardware {
|
|
namespace nfc {
|
|
namespace V1_0 {
|
|
namespace implementation {
|
|
|
|
sp<INfcClientCallback> Nfc::mCallback = NULL;
|
|
|
|
Nfc::Nfc(nfc_nci_device_t* device) : mDevice(device) {
|
|
}
|
|
|
|
// Methods from ::android::hardware::nfc::V1_0::INfc follow.
|
|
::android::hardware::Return<int32_t> Nfc::open(const sp<INfcClientCallback>& clientCallback) {
|
|
mCallback = clientCallback;
|
|
return mDevice->open(mDevice, eventCallback, dataCallback);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::write(const hidl_vec<uint8_t>& data) {
|
|
return mDevice->write(mDevice, data.size(), &data[0]);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::coreInitialized(const hidl_vec<uint8_t>& data) {
|
|
hidl_vec<uint8_t> copy = data;
|
|
return mDevice->core_initialized(mDevice, ©[0]);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::prediscover() {
|
|
return mDevice->pre_discover(mDevice);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::close() {
|
|
return mDevice->close(mDevice);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::controlGranted() {
|
|
return mDevice->control_granted(mDevice);
|
|
}
|
|
|
|
::android::hardware::Return<int32_t> Nfc::powerCycle() {
|
|
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
|