• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 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 #include "chre_api/chre/wifi.h"
18 
19 #include "chre/core/event_loop_manager.h"
20 #include "chre/util/macros.h"
21 
22 using chre::EventLoopManager;
23 using chre::EventLoopManagerSingleton;
24 
chreWifiGetCapabilities()25 DLL_EXPORT uint32_t chreWifiGetCapabilities() {
26 #ifdef CHRE_WIFI_SUPPORT_ENABLED
27   return chre::EventLoopManagerSingleton::get()
28       ->getWifiRequestManager()
29       .getCapabilities();
30 #else
31   return CHRE_WIFI_CAPABILITIES_NONE;
32 #endif  // CHRE_WIFI_SUPPORT_ENABLED
33 }
34 
chreWifiConfigureScanMonitorAsync(bool enable,const void * cookie)35 DLL_EXPORT bool chreWifiConfigureScanMonitorAsync(bool enable,
36                                                   const void *cookie) {
37 #ifdef CHRE_WIFI_SUPPORT_ENABLED
38   chre::Nanoapp *nanoapp = EventLoopManager::validateChreApiCall(__func__);
39   return EventLoopManagerSingleton::get()
40       ->getWifiRequestManager()
41       .configureScanMonitor(nanoapp, enable, cookie);
42 #else
43   return false;
44 #endif  // CHRE_WIFI_SUPPORT_ENABLED
45 }
46 
chreWifiRequestScanAsync(const struct chreWifiScanParams * params,const void * cookie)47 DLL_EXPORT bool chreWifiRequestScanAsync(
48     const struct chreWifiScanParams *params, const void *cookie) {
49 #ifdef CHRE_WIFI_SUPPORT_ENABLED
50   chre::Nanoapp *nanoapp = EventLoopManager::validateChreApiCall(__func__);
51   return (params == nullptr) ? false
52                              : EventLoopManagerSingleton::get()
53                                    ->getWifiRequestManager()
54                                    .requestScan(nanoapp, params, cookie);
55 #else
56   return false;
57 #endif  // CHRE_WIFI_SUPPORT_ENABLED
58 }
59 
chreWifiRequestRangingAsync(const struct chreWifiRangingParams * params,const void * cookie)60 DLL_EXPORT bool chreWifiRequestRangingAsync(
61     const struct chreWifiRangingParams *params, const void *cookie) {
62 #ifdef CHRE_WIFI_SUPPORT_ENABLED
63   chre::Nanoapp *nanoapp = EventLoopManager::validateChreApiCall(__func__);
64   return (params == nullptr) ? false
65                              : EventLoopManagerSingleton::get()
66                                    ->getWifiRequestManager()
67                                    .requestRanging(nanoapp, params, cookie);
68 #else
69   return false;
70 #endif  // CHRE_WIFI_SUPPORT_ENABLED
71 }
72