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