1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chromeos/services/assistant/public/cpp/features.h"
6 #include "chromeos/constants/chromeos_features.h"
7
8 #include "base/feature_list.h"
9
10 namespace chromeos {
11 namespace assistant {
12 namespace features {
13
14 const base::Feature kAssistantAudioEraser{"AssistantAudioEraser",
15 base::FEATURE_DISABLED_BY_DEFAULT};
16
17 const base::Feature kAssistantAppSupport{"AssistantAppSupport",
18 base::FEATURE_ENABLED_BY_DEFAULT};
19
20 const base::Feature kAssistantBetterOnboarding{
21 "AssistantBetterOnboarding", base::FEATURE_ENABLED_BY_DEFAULT};
22
23 const base::Feature kAssistantConversationStartersV2{
24 "AssistantConversationStartersV2", base::FEATURE_DISABLED_BY_DEFAULT};
25
26 const base::Feature kAssistantDebugging{"AssistantDebugging",
27 base::FEATURE_DISABLED_BY_DEFAULT};
28
29 const base::Feature kAssistantLauncherChipIntegration{
30 "AssistantLauncherChipIntegration", base::FEATURE_DISABLED_BY_DEFAULT};
31
32 const base::Feature kAssistantResponseProcessingV2{
33 "AssistantResponseProcessingV2", base::FEATURE_ENABLED_BY_DEFAULT};
34
35 const base::Feature kAssistantRoutines{"AssistantRoutines",
36 base::FEATURE_DISABLED_BY_DEFAULT};
37
38 const base::Feature kAssistantTimersV2{"AssistantTimersV2",
39 base::FEATURE_ENABLED_BY_DEFAULT};
40
41 const base::Feature kAssistantWaitScheduling{"AssistantWaitScheduling",
42 base::FEATURE_ENABLED_BY_DEFAULT};
43
44 const base::Feature kEnableBetterAssistant{"EnableBetterAssistant",
45 base::FEATURE_DISABLED_BY_DEFAULT};
46
47 const base::Feature kEnableBloom{"EnableBloom",
48 base::FEATURE_DISABLED_BY_DEFAULT};
49
50 const base::Feature kEnableAmbientAssistant{"EnableAmbientAssistant",
51 base::FEATURE_DISABLED_BY_DEFAULT};
52
53 const base::Feature kEnableDspHotword{"EnableDspHotword",
54 base::FEATURE_DISABLED_BY_DEFAULT};
55
56 const base::Feature kEnableStereoAudioInput{"AssistantEnableStereoAudioInput",
57 base::FEATURE_DISABLED_BY_DEFAULT};
58
59 const base::Feature kEnablePowerManager{"ChromeOSAssistantEnablePowerManager",
60 base::FEATURE_DISABLED_BY_DEFAULT};
61
62 const base::Feature kEnableOnDeviceAssistant{"OnDeviceAssistant",
63 base::FEATURE_DISABLED_BY_DEFAULT};
64
65 const base::Feature kEnableLibAssistantBetaBackend{
66 "LibAssistantBetaBackend", base::FEATURE_DISABLED_BY_DEFAULT};
67
68 const base::Feature kEnableMediaSessionIntegration{
69 "AssistantEnableMediaSessionIntegration", base::FEATURE_ENABLED_BY_DEFAULT};
70
71 // Disable voice match for test purpose.
72 const base::Feature kDisableVoiceMatch{"DisableVoiceMatch",
73 base::FEATURE_DISABLED_BY_DEFAULT};
74
IsAmbientAssistantEnabled()75 bool IsAmbientAssistantEnabled() {
76 return chromeos::features::IsAmbientModeEnabled() &&
77 base::FeatureList::IsEnabled(
78 assistant::features::kEnableAmbientAssistant);
79 }
80
IsAppSupportEnabled()81 bool IsAppSupportEnabled() {
82 return base::FeatureList::IsEnabled(
83 assistant::features::kAssistantAppSupport);
84 }
85
IsAudioEraserEnabled()86 bool IsAudioEraserEnabled() {
87 return base::FeatureList::IsEnabled(kAssistantAudioEraser);
88 }
89
IsBetterAssistantEnabled()90 bool IsBetterAssistantEnabled() {
91 return base::FeatureList::IsEnabled(kEnableBetterAssistant);
92 }
93
IsBetterOnboardingEnabled()94 bool IsBetterOnboardingEnabled() {
95 return base::FeatureList::IsEnabled(kAssistantBetterOnboarding);
96 }
97
IsBloomEnabled()98 bool IsBloomEnabled() {
99 return base::FeatureList::IsEnabled(kEnableBloom);
100 }
101
IsConversationStartersV2Enabled()102 bool IsConversationStartersV2Enabled() {
103 return base::FeatureList::IsEnabled(kAssistantConversationStartersV2);
104 }
105
IsAssistantDebuggingEnabled()106 bool IsAssistantDebuggingEnabled() {
107 return base::FeatureList::IsEnabled(kAssistantDebugging);
108 }
109
IsDspHotwordEnabled()110 bool IsDspHotwordEnabled() {
111 return base::FeatureList::IsEnabled(kEnableDspHotword);
112 }
113
IsLauncherChipIntegrationEnabled()114 bool IsLauncherChipIntegrationEnabled() {
115 return base::FeatureList::IsEnabled(kAssistantLauncherChipIntegration);
116 }
117
IsMediaSessionIntegrationEnabled()118 bool IsMediaSessionIntegrationEnabled() {
119 return base::FeatureList::IsEnabled(kEnableMediaSessionIntegration);
120 }
121
IsPowerManagerEnabled()122 bool IsPowerManagerEnabled() {
123 return base::FeatureList::IsEnabled(kEnablePowerManager);
124 }
125
IsOnDeviceAssistantEnabled()126 bool IsOnDeviceAssistantEnabled() {
127 return base::FeatureList::IsEnabled(kEnableOnDeviceAssistant);
128 }
129
IsLibAssistantBetaBackendEnabled()130 bool IsLibAssistantBetaBackendEnabled() {
131 return base::FeatureList::IsEnabled(kEnableLibAssistantBetaBackend);
132 }
133
IsResponseProcessingV2Enabled()134 bool IsResponseProcessingV2Enabled() {
135 return base::FeatureList::IsEnabled(kAssistantResponseProcessingV2);
136 }
137
IsRoutinesEnabled()138 bool IsRoutinesEnabled() {
139 return base::FeatureList::IsEnabled(kAssistantRoutines);
140 }
141
IsStereoAudioInputEnabled()142 bool IsStereoAudioInputEnabled() {
143 return base::FeatureList::IsEnabled(kEnableStereoAudioInput) ||
144 // Audio eraser requires 2 channel input.
145 base::FeatureList::IsEnabled(kAssistantAudioEraser);
146 }
147
IsTimersV2Enabled()148 bool IsTimersV2Enabled() {
149 return base::FeatureList::IsEnabled(kAssistantTimersV2);
150 }
151
IsVoiceMatchDisabled()152 bool IsVoiceMatchDisabled() {
153 return base::FeatureList::IsEnabled(kDisableVoiceMatch);
154 }
155
IsWaitSchedulingEnabled()156 bool IsWaitSchedulingEnabled() {
157 // Wait scheduling is only supported for response processing v2 and routines.
158 return base::FeatureList::IsEnabled(kAssistantWaitScheduling) &&
159 (IsResponseProcessingV2Enabled() || IsRoutinesEnabled());
160 }
161
162 } // namespace features
163 } // namespace assistant
164 } // namespace chromeos
165