1 /* 2 * Copyright (C) 2017 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 17 #ifndef CHRE_PLATFORM_PLATFORM_WIFI_H_ 18 #define CHRE_PLATFORM_PLATFORM_WIFI_H_ 19 20 #include "chre/target_platform/platform_wifi_base.h" 21 22 namespace chre { 23 24 class PlatformWifi : public PlatformWifiBase { 25 public: 26 /** 27 * Performs platform-specific initialization of the PlatformWifi instance. 28 */ 29 PlatformWifi(); 30 31 /** 32 * Performs platform-specific deinitialization of the PlatformWifi instance. 33 */ 34 ~PlatformWifi(); 35 36 /** 37 * Returns the set of WiFi capabilities that the platform has exposed. This 38 * may return CHRE_WIFI_CAPABILITIES_NONE if wifi is not supported. 39 * 40 * @return the WiFi capabilities exposed by this platform. 41 */ 42 uint32_t getCapabilities(); 43 44 /** 45 * Configures the scan monitoring function of the platform Wifi. For more info 46 * see the WiFi PAL documentation. The result of this operation is 47 * asynchronous and must be delivered to CHRE by invoking the 48 * WifiRequestManager::handleScanMonitorStateChange method. 49 * 50 * @param enable true to enable listening for scan results. 51 * @return true to indicate that the request was accepted. 52 */ 53 bool configureScanMonitor(bool enable); 54 55 /** 56 * Requests that the WiFi chipset perform an active wifi scan. Refer to the 57 * {@link chrePalWifiApi} struct of the CHRE API which includes further 58 * documentation. Note that the implementation of this method may be supplied 59 * by the CHRE PAL but is not required to be. The semantics of this 60 * implementation, however, must be the same those of the requestScan PAL API. 61 * 62 * @param params The configuration of the wifi scan. 63 * @return true to indicate that the request was accepted. 64 */ 65 bool requestScan(const struct chreWifiScanParams *params); 66 67 /** 68 * Releases a previously published wifi scan event. Refer to the 69 * {@link chrePalWifiApi} struct of the CHRE API for further documentation. 70 * 71 * @param event A pointer to an event to be released. 72 */ 73 void releaseScanEvent(struct chreWifiScanEvent *event); 74 }; 75 76 } // namespace chre 77 78 #endif // CHRE_PLATFORM_PLATFORM_WIFI_H_ 79