• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef TELEPHONY_IMS_FEATURE_H
17 #define TELEPHONY_IMS_FEATURE_H
18 
19 #include <vector>
20 
21 #include "ims_reg_types.h"
22 
23 namespace OHOS {
24 namespace Telephony {
25 /**
26  * @brief Indicates the specific IMS capability type,
27  * includes voice, video, UT.
28  */
29 enum ImsCapabilityType {
30     /**
31      * Indicate the IMS voice capability.
32      */
33     CAPABILITY_TYPE_VOICE = 0,
34     /**
35      * Indicate the IMS video capability.
36      */
37     CAPABILITY_TYPE_VIDEO = 1,
38     /**
39      * Indicate the IMS UT capability.
40      */
41     CAPABILITY_TYPE_UT = 2,
42 };
43 
44 /**
45  * @brief Indicates the IMS capability type, status and the registered RAT.
46  */
47 struct ImsCapability {
48     /**
49      * Indicates the specific IMS capability type. {@link ImsCapabilityType}
50      */
51     ImsCapabilityType imsCapabilityType = ImsCapabilityType::CAPABILITY_TYPE_VOICE;
52     /**
53      * Indicates the IMS register RAT. none, LTE, NR, IWLAN {@link ImsRegTech}
54      */
55     ImsRegTech imsRadioTech = ImsRegTech::IMS_REG_TECH_NONE;
56     /**
57      * Indicates whether the specific IMS capability is enabled.
58      * true: enabled, false: disabled
59      */
60     bool enable = false;
61 };
62 
63 /**
64  * @brief Indicates a list of IMS capability information.
65  */
66 struct ImsCapabilityList {
67     /**
68      * Indicates a list of IMS capability information. {@link ImsCapability}
69      */
70     std::vector<ImsCapability> imsCapabilities {};
71 };
72 
73 /**
74  * @brief Indicate the IMS feature status.
75  */
76 enum ImsFeatureIntResult {
77     /**
78      * Indicates the IMS feature statue is unknown.
79      */
80     IMS_FEATURE_INT_RESULT_UNKNOWN = -1,
81     /**
82      * Indicates the IMS feature statue is disabled.
83      */
84     IMS_FEATURE_INT_VALUE_DISABLED = 0,
85     /**
86      * Indicates the IMS feature statue is enabled.
87      */
88     IMS_FEATURE_INT_VALUE_ENABLED = 1
89 };
90 } // namespace Telephony
91 } // namespace OHOS
92 #endif // TELEPHONY_IMS_FEATURE_H
93