1/*
2 * Copyright 2021 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.wifi.supplicant@1.4;
18
19import @1.0::ISupplicantP2pIfaceCallback;
20import @1.0::MacAddress;
21import @1.0::WpsConfigMethods;
22import @1.0::P2pGroupCapabilityMask;
23
24/**
25 * Callback Interface exposed by the supplicant service
26 * for each P2P mode interface (ISupplicantP2pIface).
27 *
28 * Clients need to host an instance of this HIDL interface object and
29 * pass a reference of the object to the supplicant via the
30 * corresponding |ISupplicantP2pIface.registerCallback| method.
31 */
32interface ISupplicantP2pIfaceCallback extends @1.0::ISupplicantP2pIfaceCallback {
33    /**
34     * Used to indicate that a P2P Wi-Fi Display R2 device has been found. Refer to
35     * Wi-Fi Display Technical Specification Version 2.0.
36     *
37     * @param srcAddress MAC address of the device found. This must either
38     *        be the P2P device address for a peer which is not in a group,
39     *        or the P2P interface address for a peer which is a Group Owner.
40     * @param p2pDeviceAddress P2P device address.
41     * @param primaryDeviceType Type of device. Refer to section B.1 of Wifi P2P
42     *        Technical specification v1.2.
43     * @param deviceName Name of the device.
44     * @param configMethods Mask of WPS configuration methods supported by the
45     *        device.
46     * @param deviceCapabilities Refer to section 4.1.4 of Wifi P2P Technical
47     *        specification v1.2.
48     * @param groupCapabilites Refer to section 4.1.4 of Wifi P2P Technical
49     *        specification v1.2.
50     * @param wfdDeviceInfo WFD device info as described in section 5.1.2 of WFD
51     *        technical specification v1.0.0.
52     * @param wfdR2DeviceInfo WFD R2 device info as described in section 5.1.12 of WFD
53     *        technical specification v2.1.
54     */
55    oneway onR2DeviceFound(
56        MacAddress srcAddress, MacAddress p2pDeviceAddress,
57        uint8_t[8] primaryDeviceType, string deviceName,
58        bitfield<WpsConfigMethods> configMethods, uint8_t deviceCapabilities,
59        bitfield<P2pGroupCapabilityMask> groupCapabilities, uint8_t[6] wfdDeviceInfo,
60        uint8_t[2] wfdR2DeviceInfo);
61};
62