aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Biren <gbiren@google.com>2023-12-05 22:31:05 +0000
committerGabriel Biren <gbiren@google.com>2023-12-05 22:31:05 +0000
commit13ba14427fd283f300b68018479a234de5fa9c37 (patch)
tree291036daafe759246869afe95ea5156b899ceb1e
parentd3450646d5f0c2d275e975a684132cd637d08477 (diff)
downloadwpa_supplicant_8-13ba14427fd283f300b68018479a234de5fa9c37.tar.gz
Call new onDeviceFoundWithParams callback
in the supplicant service. Bug: 296069900 Test: atest VtsHalWifiSupplicantP2pIfaceTargetTest Change-Id: Ia9ff7d8a913617ee421fb0fd7115b1eab3df3008
-rw-r--r--wpa_supplicant/aidl/aidl_manager.cpp39
1 files changed, 29 insertions, 10 deletions
diff --git a/wpa_supplicant/aidl/aidl_manager.cpp b/wpa_supplicant/aidl/aidl_manager.cpp
index fba84fe4..cac9ddb6 100644
--- a/wpa_supplicant/aidl/aidl_manager.cpp
+++ b/wpa_supplicant/aidl/aidl_manager.cpp
@@ -1344,16 +1344,35 @@ void AidlManager::notifyP2pDeviceFound(
std::back_inserter(aidl_vendor_elems));
}
- const std::function<
- ndk::ScopedAStatus(std::shared_ptr<ISupplicantP2pIfaceCallback>)>
- func = std::bind(
- &ISupplicantP2pIfaceCallback::onDeviceFoundWithVendorElements,
- std::placeholders::_1, macAddrToVec(addr), macAddrToVec(info->p2p_device_addr),
- byteArrToVec(info->pri_dev_type, 8), misc_utils::charBufToString(info->device_name),
- static_cast<WpsConfigMethods>(info->config_methods),
- info->dev_capab, static_cast<P2pGroupCapabilityMask>(info->group_capab), aidl_peer_wfd_device_info,
- aidl_peer_wfd_r2_device_info, aidl_vendor_elems);
- callWithEachP2pIfaceCallback(wpa_s->ifname, func);
+ if (isAidlServiceVersionAtLeast(3)) {
+ P2pDeviceFoundEventParams params;
+ params.srcAddress = macAddrToArray(addr);
+ params.p2pDeviceAddress = macAddrToArray(info->p2p_device_addr);
+ params.primaryDeviceType = byteArrToVec(info->pri_dev_type, 8);
+ params.deviceName = misc_utils::charBufToString(info->device_name);
+ params.configMethods = info->config_methods;
+ params.deviceCapabilities = info->dev_capab;
+ params.groupCapabilities = info->group_capab;
+ params.wfdDeviceInfo = aidl_peer_wfd_device_info;
+ params.wfdR2DeviceInfo = aidl_peer_wfd_r2_device_info;
+ params.vendorElemBytes = aidl_vendor_elems;
+ callWithEachP2pIfaceCallback(
+ misc_utils::charBufToString(wpa_s->ifname),
+ std::bind(
+ &ISupplicantP2pIfaceCallback::onDeviceFoundWithParams,
+ std::placeholders::_1, params));
+ } else {
+ const std::function<
+ ndk::ScopedAStatus(std::shared_ptr<ISupplicantP2pIfaceCallback>)>
+ func = std::bind(
+ &ISupplicantP2pIfaceCallback::onDeviceFoundWithVendorElements,
+ std::placeholders::_1, macAddrToVec(addr), macAddrToVec(info->p2p_device_addr),
+ byteArrToVec(info->pri_dev_type, 8), misc_utils::charBufToString(info->device_name),
+ static_cast<WpsConfigMethods>(info->config_methods),
+ info->dev_capab, static_cast<P2pGroupCapabilityMask>(info->group_capab), aidl_peer_wfd_device_info,
+ aidl_peer_wfd_r2_device_info, aidl_vendor_elems);
+ callWithEachP2pIfaceCallback(wpa_s->ifname, func);
+ }
}
void AidlManager::notifyP2pDeviceLost(