1 /* 2 * Copyright (C) 2023 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 BLUETOOTH_SERVICE_PROFILE_INTERFACE_CODE_H 17 #define BLUETOOTH_SERVICE_PROFILE_INTERFACE_CODE_H 18 19 #include "ipc_types.h" 20 21 /* SAID: 1130 */ 22 namespace OHOS { 23 namespace Bluetooth { 24 enum BluetoothA2dpSinkObserverInterfaceCode { 25 BT_A2DP_SINK_OBSERVER_CONNECTION_STATE_CHANGED = 0, 26 // The last code, if you want to add a new code, please add it before this 27 BT_A2DP_SINK_OBSERVER_BUTT 28 }; 29 30 enum BluetoothA2dpSinkInterfaceCode { 31 BT_A2DP_SINK_CONNECT = 0, 32 BT_A2DP_SINK_DISCONNECT, 33 BT_A2DP_SINK_REGISTER_OBSERVER, 34 BT_A2DP_SINK_DEREGISTER_OBSERVER, 35 BT_A2DP_SINK_GET_DEVICE_BY_STATES, 36 BT_A2DP_SINK_GET_DEVICE_STATE, 37 BT_A2DP_SINK_GET_PLAYING_STATE, 38 BT_A2DP_SINK_SET_CONNECT_STRATEGY, 39 BT_A2DP_SINK_GET_CONNECT_STRATEGY, 40 BT_A2DP_SINK_SEND_DELAY, 41 // The last code, if you want to add a new code, please add it before this 42 BT_A2DP_SINK_BUTT 43 }; 44 45 enum BluetoothA2dpSourceObserverInterfaceCode { 46 BT_A2DP_SRC_OBSERVER_CONNECTION_STATE_CHANGED = 0, 47 BT_A2DP_SRC_OBSERVER_PLAYING_STATUS_CHANGED, 48 BT_A2DP_SRC_OBSERVER_CONFIGURATION_CHANGED, 49 BT_A2DP_SRC_OBSERVER_MEDIASTACK_CHANGED, 50 BT_A2DP_SRC_OBSERVER_VIRTUALDEVICE_CHANGED, 51 // The last code, if you want to add a new code, please add it before this 52 BT_A2DP_SRC_OBSERVER_BUTT 53 }; 54 55 enum BluetoothA2dpSrcInterfaceCode { 56 BT_A2DP_SRC_CONNECT = 0, 57 BT_A2DP_SRC_DISCONNECT, 58 BT_A2DP_SRC_REGISTER_OBSERVER, 59 BT_A2DP_SRC_DEREGISTER_OBSERVER, 60 BT_A2DP_SRC_GET_DEVICE_BY_STATES, 61 BT_A2DP_SRC_GET_DEVICE_STATE, 62 BT_A2DP_SRC_GET_PLAYING_STATE, 63 BT_A2DP_SRC_SET_CONNECT_STRATEGY, 64 BT_A2DP_SRC_GET_CONNECT_STRATEGY, 65 BT_A2DP_SRC_SET_ACTIVE_SINK_DEVICE, 66 BT_A2DP_SRC_GET_ACTIVE_SINK_DEVICE, 67 BT_A2DP_SRC_GET_CODEC_STATUS, 68 BT_A2DP_SRC_SET_CODEC_PREFERENCE, 69 BT_A2DP_SRC_SWITCH_OPTIONAL_CODECS, 70 BT_A2DP_SRC_GET_OPTIONAL_CODECS_SUPPORT_STATE, 71 BT_A2DP_SRC_START_PLAYING, 72 BT_A2DP_SRC_SUSPEND_PLAYING, 73 BT_A2DP_SRC_STOP_PLAYING, 74 BT_A2DP_SRC_SET_AUDIO_CONFIGURE, 75 BT_A2DP_SRC_WRITE_FRAME, 76 BT_A2DP_SRC_GET_RENDER_POSITION, 77 BT_A2DP_SRC_GET_CODEC_PREFERENCE, 78 BT_A2DP_SRC_OFFLOAD_START_PLAYING, 79 BT_A2DP_SRC_OFFLOAD_STOP_PLAYING, 80 BT_A2DP_SRC_OFFLOAD_SESSION_REQUEST, 81 BT_A2DP_SRC_OFFLOAD_GET_CODEC_STATUS, 82 BT_A2DP_SRC_ENABLE_AUTO_PLAY, 83 BT_A2DP_SRC_DISABLE_AUTO_PLAY, 84 BT_A2DP_SRC_GET_AUTO_PLAY_DISABLED_DURATION, 85 BT_A2DP_SRC_SET_VIRTUAL_DEVICE, 86 BT_A2DP_SRC_GET_VIRTUALDEVICE_LIST, 87 // The last code, if you want to add a new code, please add it before this 88 BT_A2DP_SRC_BUTT 89 }; 90 91 enum class BluetoothAvrcpCtObserverInterfaceCode { 92 AVRCP_CT_CONNECTION_STATE_CHANGED = 0, 93 AVRCP_CT_PRESS_BUTTON, 94 AVRCP_CT_RELEASE_BUTTON, 95 AVRCP_CT_SET_BROWSED_PLAYER, 96 AVRCP_CT_GET_CAPABILITIES, 97 AVRCP_CT_GET_PLAYER_APP_SETTING_ATTRIBUTES, 98 AVRCP_CT_GET_PLAYER_APP_SETTING_VALUES, 99 AVRCP_CT_GET_PLAYER_APP_SETTING_CURRENT_VALUE, 100 AVRCP_CT_SET_PLAYER_APP_SETTING_CURRENT_VALUE, 101 AVRCP_CT_GET_PLAYER_APP_SETTING_ATTRIBUTE_TEXT, 102 AVRCP_CT_GET_PLAYER_APP_SETTING_VALUE_TEXT, 103 AVRCP_CT_ELEMENT_ATTRIBUTRES, 104 AVRCP_CT_GET_PLAY_STATUS, 105 AVRCP_CT_PLAY_ITEM, 106 AVRCP_CT_GET_TOTAL_NUMBER_OF_ITEMS, 107 AVRCP_CT_GET_ITEM_ATTRIBUTES, 108 AVRCP_CT_SET_ABSOLUTE_VOLUME, 109 AVRCP_CT_PLAYBACK_STATUS_CHANGED, 110 AVRCP_CT_TRACK_CHANGED, 111 AVRCP_CT_TRACK_REACHED_END, 112 AVRCP_CT_TRACK_REACHED_START, 113 AVRCP_CT_PLAYBACK_POS_CHANGED, 114 AVRCP_CT_PLAY_APP_SETTING_CHANGED, 115 AVRCP_CT_NOW_PLAYING_CONTENT_CHANGED, 116 AVRCP_CT_AVAILABLE_PLAYER_CHANGED, 117 AVRCP_CT_ADDRESSED_PLAYER_CHANGED, 118 AVRCP_CT_UID_CHANGED, 119 AVRCP_CT_VOLUME_CHANGED, 120 AVRCP_CT_GET_MEDIA_PLAYERS, 121 AVRCP_CT_GET_FOLDER_ITEMS, 122 // The last code, if you want to add a new code, please add it before this 123 AVRCP_CT_OBSERVER_BUTT 124 }; 125 126 enum class BluetoothAvrcpCtInterfaceCode { 127 AVRCP_CT_REGISTER_OBSERVER = 0, 128 AVRCP_CT_UNREGISTER_OBSERVER, 129 AVRCP_CT_GET_CONNECTED_DEVICES, 130 AVRCP_CT_GET_DEVICES_BY_STATES, 131 AVRCP_CT_GET_DEVICE_STATE, 132 AVRCP_CT_CONNECT, 133 AVRCP_CT_DISCONNECT, 134 AVRCP_CT_PRESS_BUTTON, 135 AVRCP_CT_RELEASE_BUTTON, 136 AVRCP_CT_GET_UNIT_INFO, 137 AVRCP_CT_GET_SUB_UNIT_INFO, 138 AVRCP_CT_GET_SUPPORTED_COMPANIES, 139 AVRCP_CT_GET_SUPPORTED_EVENTS, 140 AVRCP_CT_GET_PLAYER_APP_SETTING_ATTRIBUTES, 141 AVRCP_CT_GET_PLAYER_APP_SETTING_VALUES, 142 AVRCP_CT_GET_PLAYER_APP_SETTING_CURRENT_VALUE, 143 AVRCP_CT_SET_PLAYER_APP_SETTING_CURRENT_VALUE, 144 AVRCP_CT_GET_PLAYER_APP_SETTING_ATTRIBUTE_TEXT, 145 AVRCP_CT_GET_PLAYER_APP_SETTING_VALUES_TEXT, 146 AVRCP_CT_GET_ELEMENT_ATTRIBUTES, 147 AVRCP_CT_GET_PLAYER_STATUS, 148 AVRCP_CT_PLAY_ITEM, 149 AVRCP_CT_GET_FOLDER_ITEMS, 150 AVRCP_CT_GET_TOTAL_NUMBER_OF_ITEMS, 151 AVRCP_CT_SET_ABSOLUTE_VOLUME, 152 AVRCP_CT_ENABLE_NOTIFICATION, 153 AVRCP_CT_DISABLE_NOTIFICATION, 154 AVRCP_CT_GET_ITEM_ATTRIBUTES, 155 AVRCP_CT_SET_BROWSERED_PLAYER, 156 AVRCP_CT_MEDIA_PLAYER_LIST, 157 // The last code, if you want to add a new code, please add it before this 158 AVRCP_CT_BUTT 159 }; 160 161 enum BluetoothAvrcpTgObserverInterfaceCode { 162 BT_AVRCP_TG_OBSERVER_CONNECTION_STATE_CHANGED = 0, 163 // The last code, if you want to add a new code, please add it before this 164 BT_AVRCP_TG_OBSERVER_BUTT 165 }; 166 167 enum BluetoothAvrcpTgInterfaceCode { 168 BT_AVRCP_TG_REGISTER_OBSERVER = 0, 169 BT_AVRCP_TG_UNREGISTER_OBSERVER, 170 BT_AVRCP_TG_SET_ACTIVE_DEVICE, 171 BT_AVRCP_TG_CONNECT, 172 BT_AVRCP_TG_DISCONNECT, 173 BT_AVRCP_TG_GET_CONNECTED_DEVICES, 174 BT_AVRCP_TG_GET_DEVICES_BY_STATES, 175 BT_AVRCP_TG_GET_DEVICE_STATE, 176 BT_AVRCP_TG_NOTIFY_PLAYBACK_STATUS_CHANGED, 177 BT_AVRCP_TG_NOTIFY_TRACK_CHANGED, 178 BT_AVRCP_TG_NOTIFY_TRACK_REACHED_END, 179 BT_AVRCP_TG_NOTIFY_TRACK_REACHED_START, 180 BT_AVRCP_TG_NOTIFY_PLAYBACK_POS_CHANGED, 181 BT_AVRCP_TG_NOTIFY_PLAYER_APP_SETTING_CHANGED, 182 BT_AVRCP_TG_NOTIFY_NOWPLAYING_CONTENT_CHANGED, 183 BT_AVRCP_TG_NOTIFY_AVAILABLE_PLAYERS_CHANGED, 184 BT_AVRCP_TG_NOTIFY_ADDRESSED_PLAYER_CHANGED, 185 BT_AVRCP_TG_NOTIFY_UID_CHANGED, 186 BT_AVRCP_TG_NOTIFY_VOLUME_CHANGED, 187 BT_AVRCP_TG_SET_DEVICE_ABSOLUTE_VOLUME, 188 BT_AVRCP_TG_SET_DEVICE_ABS_VOLUME_ABILITY, 189 BT_AVRCP_TG_GET_DEVICE_ABS_VOLUME_ABILITY, 190 // The last code, if you want to add a new code, please add it before this 191 BT_AVRCP_TG_BUTT 192 }; 193 194 enum BluetoothHfpAgObserverInterfaceCode { 195 BT_HFP_AG_OBSERVER_CONNECTION_STATE_CHANGED = 0, 196 BT_HFP_AG_OBSERVER_SCO_STATE_CHANGED, 197 BT_HFP_AG_OBSERVER_ACTIVE_DEVICE_CHANGED, 198 BT_HFP_AG_OBSERVER_HF_ENHANCED_DRIVER_SAFETY_CHANGED, 199 BT_HFP_AG_OBSERVER_HFP_STACK_CHANGED, 200 BT_HFP_AG_OBSERVER_VIRTUALDEVICE_CHANGED, 201 // The last code, if you want to add a new code, please add it before this 202 BT_HFP_AG_OBSERVER_BUTT 203 }; 204 205 enum BluetoothHfpAgInterfaceCode { 206 BT_HFP_AG_GET_CONNECT_DEVICES = 0, 207 BT_HFP_AG_GET_DEVICES_BY_STATES, 208 BT_HFP_AG_GET_DEVICE_STATE, 209 BT_HFP_AG_CONNECT, 210 BT_HFP_AG_DISCONNECT, 211 BT_HFP_AG_GET_SCO_STATE, 212 BT_HFP_AG_CONNECT_SCO, 213 BT_HFP_AG_DISCONNECT_SCO, 214 BT_HFP_AG_PHONE_STATE_CHANGED, 215 BT_HFP_AG_CLCC_RESPONSE, 216 BT_HFP_AG_OPEN_VOICE_RECOGNITION, 217 BT_HFP_AG_CLOSE_VOICE_RECOGNITION, 218 BT_HFP_AG_SET_ACTIVE_DEVICE, 219 BT_HFP_AG_INTO_MOCK, 220 BT_HFP_AG_SEND_NO_CARRIER, 221 BT_HFP_AG_GET_ACTIVE_DEVICE, 222 BT_HFP_AG_REGISTER_OBSERVER, 223 BT_HFP_AG_DEREGISTER_OBSERVER, 224 BT_HFP_AG_SET_CONNECT_STRATEGY, 225 BT_HFP_AG_GET_CONNECT_STRATEGY, 226 BT_HFP_AG_CONNECT_SCO_EX, 227 BT_HFP_AG_DISCONNECT_SCO_EX, 228 BT_HFP_AG_IS_IN_BAND_RINGING_ENABLE, 229 BT_HFP_AG_CALL_DETAILS_CHANGED, 230 BT_HFP_AG_IS_VGS_SUPPORTED, 231 BT_HFP_AG_CALL_LOG, 232 BT_HFP_AG_GET_VIRTUALDEVICE_LIST, 233 BT_HFP_AG_UPDATE_VIRTUALDEVICE, 234 // The last code, if you want to add a new code, please add it before this 235 BT_HFP_AG_BUTT 236 }; 237 238 enum BluetoothHfpHfObserverInterfaceCode { 239 BT_HFP_HF_OBSERVER_CONNECTION_STATE_CHANGED = 0, 240 BT_HFP_HF_OBSERVER_SCO_STATE_CHANGED, 241 BT_HFP_HF_OBSERVER_CALL_CHANGED, 242 BT_HFP_HF_OBSERVER_SIGNAL_STRENGTH_CHANGED, 243 BT_HFP_HF_OBSERVER_REGISTRATION_STATUS_CHANGED, 244 BT_HFP_HF_OBSERVER_ROAMING_STATUS_CHANGED, 245 BT_HFP_HF_OBSERVER_OPERATOR_SELECTION_CHANGED, 246 BT_HFP_HF_OBSERVER_SUBSCRIBER_NUMBER_CHANGED, 247 BT_HFP_HF_OBSERVER_VOICE_RECOGNITION_STATUS_CHANGED, 248 BT_HFP_HF_OBSERVER_IN_BAND_RING_TONE_CHANGED, 249 // The last code, if you want to add a new code, please add it before this 250 BT_HFP_HF_OBSERVER_BUTT 251 }; 252 253 enum BluetoothHfpHfInterfaceCode { 254 BT_HFP_HF_CONNECT_SCO = 0, 255 BT_HFP_HF_DISCONNECT_SCO, 256 BT_HFP_HF_GET_DEVICES_BY_STATES, 257 BT_HFP_HF_GET_DEVICE_STATE, 258 BT_HFP_HF_GET_SCO_STATE, 259 BT_HFP_HF_SEND_DTMF_TONE, 260 BT_HFP_HF_CONNECT, 261 BT_HFP_HF_DISCONNECT, 262 BT_HFP_HF_OPEN_VOICE_RECOGNITION, 263 BT_HFP_HF_CLOSE_VOICE_RECOGNITION, 264 BT_HFP_HF_GET_CURRENT_CALL_LIST, 265 BT_HFP_HF_ACCEPT_INCOMING_CALL, 266 BT_HFP_HF_HOLD_ACTIVE_CALL, 267 BT_HFP_HF_REJECT_INCOMING_CALL, 268 BT_HFP_HF_HANDLE_INCOMING_CALL, 269 BT_HFP_HF_HANDLE_MULLTI_CALL, 270 BT_HFP_HF_DIAL_LAST_NUMBER, 271 BT_HFP_HF_DIAL_MEMORY, 272 BT_HFP_HF_FINISH_ATIVE_CALL, 273 BT_HFP_HF_START_DIAL, 274 BT_HFP_HF_REGISTER_OBSERVER, 275 BT_HFP_HF_DEREGISTER_OBSERVER, 276 BT_HFP_HF_SEND_VOICE_TAG, 277 BT_HFP_HF_SEND_KEY_PRESSED, 278 // The last code, if you want to add a new code, please add it before this 279 BT_HFP_HF_BUTT 280 }; 281 282 #define SEND_IPC_REQUEST_RETURN_RESULT(code, data, reply, option, result) \ 283 do { \ 284 sptr<IRemoteObject> remote = Remote(); \ 285 if (remote == nullptr) { \ 286 HILOGE("remote is nullptr."); \ 287 return (result); \ 288 } \ 289 int ret = remote->SendRequest((code), (data), (reply), (option)); \ 290 if (ret != BT_NO_ERROR) { \ 291 HILOGE("IPC send failed, ret(%{public}d), code(%{public}d)", ret, (code)); \ 292 return (result); \ 293 } \ 294 } while (0) 295 296 #define SEND_IPC_REQUEST_RETURN(code, data, reply, option) \ 297 do { \ 298 sptr<IRemoteObject> remote = Remote(); \ 299 if (remote == nullptr) { \ 300 HILOGE("remote is nullptr."); \ 301 return; \ 302 } \ 303 int ret = remote->SendRequest((code), (data), (reply), (option)); \ 304 if (ret != BT_NO_ERROR) { \ 305 HILOGE("IPC send failed, ret(%{public}d), code(%{public}d)", ret, (code)); \ 306 return; \ 307 } \ 308 } while (0) 309 310 } // namespace Bluetooth 311 } // namespace OHOS 312 #endif // BLUETOOTH_SERVICE_PROFILE_INTERFACE_CODE_H