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