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