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 #ifndef WIFI_FEATURE_FLAGS_H_
18 #define WIFI_FEATURE_FLAGS_H_
19 
20 #include <android/hardware/wifi/1.2/IWifiChip.h>
21 
22 namespace android {
23 namespace hardware {
24 namespace wifi {
25 namespace V1_5 {
26 namespace implementation {
27 namespace feature_flags {
28 
29 namespace chip_mode_ids {
30 // These mode ID's should be unique (even across combo versions). Refer to
31 // handleChipConfiguration() for it's usage.
32 constexpr V1_0::ChipModeId kInvalid = UINT32_MAX;
33 // Mode ID's for V1
34 constexpr V1_0::ChipModeId kV1Sta = 0;
35 constexpr V1_0::ChipModeId kV1Ap = 1;
36 // Mode ID for V3
37 constexpr V1_0::ChipModeId kV3 = 3;
38 }  // namespace chip_mode_ids
39 
40 class WifiFeatureFlags {
41    public:
42     WifiFeatureFlags();
43     virtual ~WifiFeatureFlags() = default;
44 
45     virtual std::vector<V1_0::IWifiChip::ChipMode> getChipModes(
46         bool is_primary);
47 
48    private:
49     std::vector<V1_0::IWifiChip::ChipMode> getChipModesForPrimary();
50 };
51 
52 }  // namespace feature_flags
53 }  // namespace implementation
54 }  // namespace V1_5
55 }  // namespace wifi
56 }  // namespace hardware
57 }  // namespace android
58 
59 #endif  // WIFI_FEATURE_FLAGS_H_
60