1072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang/* 2072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * Copyright (C) 2016 The Android Open Source Project 3072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * 4072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * you may not use this file except in compliance with the License. 6072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * You may obtain a copy of the License at 7072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * 8072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * http://www.apache.org/licenses/LICENSE-2.0 9072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * 10072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * Unless required by applicable law or agreed to in writing, software 11072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * distributed under the License is distributed on an "AS IS" BASIS, 12072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * See the License for the specific language governing permissions and 14072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang * limitations under the License. 15072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang */ 16072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 17072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#ifndef WIFICOND_SCANNING_PNO_SETTINGS_H_ 18072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#define WIFICOND_SCANNING_PNO_SETTINGS_H_ 19072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 20072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#include <vector> 21072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 22072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#include <binder/Parcel.h> 23072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#include <binder/Parcelable.h> 24072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 25072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#include "wificond/scanning/pno_network.h" 26072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 27072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangnamespace com { 28072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangnamespace android { 29072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangnamespace server { 30072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangnamespace wifi { 31072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangnamespace wificond { 32072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 33072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wangclass PnoSettings : public ::android::Parcelable { 34072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang public: 35dfbe7e4e12824527fac840391f31d2b4a4578e3eNingyuan Wang static const uint32_t kFastScanIterations; 36dfbe7e4e12824527fac840391f31d2b4a4578e3eNingyuan Wang static const uint32_t kSlowScanIntervalMultiplier; 37dfbe7e4e12824527fac840391f31d2b4a4578e3eNingyuan Wang 38072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang PnoSettings() 39072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang : interval_ms_(0), 40072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang min_2g_rssi_(0), 41072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang min_5g_rssi_(0) {} 42072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang bool operator==(const PnoSettings& rhs) const { 43072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang return (pno_networks_ == rhs.pno_networks_ && 44072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang min_2g_rssi_ == rhs.min_2g_rssi_ && 45072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang min_5g_rssi_ == rhs.min_5g_rssi_); 46072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang } 47072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang ::android::status_t writeToParcel(::android::Parcel* parcel) const override; 48072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang ::android::status_t readFromParcel(const ::android::Parcel* parcel) override; 49072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 50072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang int32_t interval_ms_; 51072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang int32_t min_2g_rssi_; 52072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang int32_t min_5g_rssi_; 53072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang std::vector<PnoNetwork> pno_networks_; 54072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang}; 55072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 56072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang} // namespace wificond 57072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang} // namespace wifi 58072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang} // namespace server 59072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang} // namespace android 60072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang} // namespace com 61072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang 62072c61998e3e504dc96a2ca86a6ea1d68e1b6e2fNingyuan Wang#endif // WIFICOND_SCANNING_PNO_SETTINGS_H_ 63