RDK Documentation (Open Sourced RDK Components)
btmgr_iarm_interface.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's Licenses.txt file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 #include "libIBus.h"
20 #include "libIARM.h"
21 
22 #ifndef __BT_MGR_IARM_INTERFACE_H__
23 #define __BT_MGR_IARM_INTERFACE_H__
24 
25 /**
26  * @file btmgr_iarm_interface.h
27  *
28  * @defgroup IARM_Interface IARM Interface
29  * This file defines bluetooth manager's iarm interfaces to external BT devices.
30  * @ingroup BTR_MGR
31  */
32 
33 /**
34  * @addtogroup IARM_Interface
35  * @{
36  *
37  */
38 #define IARM_BUS_BTRMGR_NAME "BTRMgrBus"
39 #define BTRMGR_IARM_METHOD_CALL_TIMEOUT_DEFAULT_MS 15000
40 
41 
42 #define BTRMGR_IARM_METHOD_GET_NUMBER_OF_ADAPTERS "GetNumberOfAdapters"
43 #define BTRMGR_IARM_METHOD_SET_ADAPTER_NAME "SetAdapterName"
44 #define BTRMGR_IARM_METHOD_GET_ADAPTER_NAME "GetAdapterName"
45 #define BTRMGR_IARM_METHOD_SET_ADAPTER_POWERSTATUS "SetAdapterPowerStatus"
46 #define BTRMGR_IARM_METHOD_GET_ADAPTER_POWERSTATUS "GetAdapterPowerStatus"
47 #define BTRMGR_IARM_METHOD_SET_ADAPTER_DISCOVERABLE "SetAdapterDiscoverable"
48 #define BTRMGR_IARM_METHOD_IS_ADAPTER_DISCOVERABLE "IsAdapterDiscoverable"
49 #define BTRMGR_IARM_METHOD_CHANGE_DEVICE_DISCOVERY_STATUS "SetDeviceDiscoveryStatus"
50 #define BTRMGR_IARM_METHOD_GET_DISCOVERY_STATUS "GetDeviceDiscoveryStatus"
51 #define BTRMGR_IARM_METHOD_GET_DISCOVERED_DEVICES "GetDiscoveredDevices"
52 #define BTRMGR_IARM_METHOD_PAIR_DEVICE "PairDevice"
53 #define BTRMGR_IARM_METHOD_UNPAIR_DEVICE "UnpairDevice"
54 #define BTRMGR_IARM_METHOD_GET_PAIRED_DEVICES "GetPairedDevices"
55 #define BTRMGR_IARM_METHOD_CONNECT_TO_DEVICE "ConnectToDevice"
56 #define BTRMGR_IARM_METHOD_DISCONNECT_FROM_DEVICE "DisconnectFromDevice"
57 #define BTRMGR_IARM_METHOD_GET_CONNECTED_DEVICES "GetConnectedDevices"
58 #define BTRMGR_IARM_METHOD_GET_DEVICE_PROPERTIES "GetDeviceProperties"
59 #define BTRMGR_IARM_METHOD_START_AUDIO_STREAMING_OUT "StartAudioStreamingOut"
60 #define BTRMGR_IARM_METHOD_STOP_AUDIO_STREAMING_OUT "StopAudioStreamingOut"
61 #define BTRMGR_IARM_METHOD_IS_AUDIO_STREAMING_OUT "IsAudioStreamingOut"
62 #define BTRMGR_IARM_METHOD_SET_AUDIO_STREAM_OUT_TYPE "SetAudioStreamOutType"
63 #define BTRMGR_IARM_METHOD_START_AUDIO_STREAMING_IN "StartAudioStreamingIn"
64 #define BTRMGR_IARM_METHOD_STOP_AUDIO_STREAMING_IN "StopAudioStreamingIn"
65 #define BTRMGR_IARM_METHOD_IS_AUDIO_STREAMING_IN "IsAudioStreamingIn"
66 #define BTRMGR_IARM_METHOD_SET_EVENT_RESPONSE "SetEventResponse"
67 #define BTRMGR_IARM_METHOD_MEDIA_CONTROL "MediaControl"
68 #define BTRMGR_IARM_METHOD_SET_DEVICE_VOLUME_MUTE_INFO "SetDeviceVolumeMuteInfo"
69 #define BTRMGR_IARM_METHOD_GET_DEVICE_VOLUME_MUTE_INFO "GetDeviceVolumeMuteInfo"
70 #define BTRMGR_IARM_METHOD_GET_MEDIA_TRACK_INFO "GetMediaTrackInfo"
71 #define BTRMGR_IARM_METHOD_GET_MEDIA_ELEMENT_TRACK_INFO "GetMediaElementTrackInfo"
72 #define BTRMGR_IARM_METHOD_GET_MEDIA_CURRENT_POSITION "GetMediaCurrentPosition"
73 #define BTRMGR_IARM_METHOD_SET_MEDIA_ELEMENT_ACTIVE "SetMediaElementActive"
74 #define BTRMGR_IARM_METHOD_GET_MEDIA_ELEMENT_LIST "GetMediaElementList"
75 #define BTRMGR_IARM_METHOD_SELECT_MEDIA_ELEMENT "SelectMediaElement"
76 #define BTRMGR_IARM_METHOD_GET_LE_PROPERTY "GetLeProperty"
77 #define BTRMGR_IARM_METHOD_PERFORM_LE_OP "PerformLeOperation"
78 #define BTRMGR_IARM_METHOD_SET_AUDIO_IN_SERVICE_STATE "SetAudioInServiceState"
79 #define BTRMGR_IARM_METHOD_SET_HID_GAMEPAD_SERVICE_STATE "SetGamePadServiceState"
80 #define BTRMGR_IARM_METHOD_RESET_ADAPTER "ResetAdapter"
81 #define BTRMGR_IARM_METHOD_DEINIT "DeInit"
82 #define BTRMGR_IARM_METHOD_SET_LIMIT_BEACON_DETECTION "SetLimitBeaconDetection"
83 #define BTRMGR_IARM_METHOD_GET_LIMIT_BEACON_DETECTION "GetLimitBeaconDetection"
84 #define BTRMGR_IARM_METHOD_LE_START_ADVERTISEMENT "StartAdvertisement"
85 #define BTRMGR_IARM_METHOD_LE_STOP_ADVERTISEMENT "StopAdvertisement"
86 #define BTRMGR_IARM_METHOD_LE_GET_PROP_VALUE "GetPropertyValue"
87 #define BTRMGR_IARM_METHOD_LE_SET_GATT_SERVICE_INFO "SetGattServiceInfo"
88 #define BTRMGR_IARM_METHOD_LE_SET_GATT_CHAR_INFO "SetGattCharInfo"
89 #define BTRMGR_IARM_METHOD_LE_SET_GATT_PROPERTY_VALUE "SetGattPropertyValue"
90 #define BTRMGR_IARM_METHOD_GET_SYS_DIAG_INFO "SysDiagInfo"
91 #define BTRMGR_IARM_METHOD_WIFI_CONNECT_INFO "ConnectToWifi"
92 
93 /**
94  * @brief Represents the events supported by bluetooth manager.
95  */
96 typedef enum _BTRMGR_IARMEvents_t {
97  BTRMGR_IARM_EVENT_DEVICE_OUT_OF_RANGE,
98  BTRMGR_IARM_EVENT_DEVICE_DISCOVERY_UPDATE,
99  BTRMGR_IARM_EVENT_DEVICE_DISCOVERY_COMPLETE,
100  BTRMGR_IARM_EVENT_DEVICE_PAIRING_COMPLETE,
101  BTRMGR_IARM_EVENT_DEVICE_UNPAIRING_COMPLETE,
102  BTRMGR_IARM_EVENT_DEVICE_CONNECTION_COMPLETE,
103  BTRMGR_IARM_EVENT_DEVICE_DISCONNECT_COMPLETE,
104  BTRMGR_IARM_EVENT_DEVICE_PAIRING_FAILED,
105  BTRMGR_IARM_EVENT_DEVICE_UNPAIRING_FAILED,
106  BTRMGR_IARM_EVENT_DEVICE_CONNECTION_FAILED,
107  BTRMGR_IARM_EVENT_DEVICE_DISCONNECT_FAILED,
108  BTRMGR_IARM_EVENT_RECEIVED_EXTERNAL_PAIR_REQUEST,
109  BTRMGR_IARM_EVENT_RECEIVED_EXTERNAL_CONNECT_REQUEST,
110  BTRMGR_IARM_EVENT_RECEIVED_EXTERNAL_PLAYBACK_REQUEST,
111  BTRMGR_IARM_EVENT_DEVICE_FOUND,
112  BTRMGR_IARM_EVENT_MEDIA_TRACK_STARTED,
113  BTRMGR_IARM_EVENT_MEDIA_TRACK_PLAYING,
114  BTRMGR_IARM_EVENT_MEDIA_TRACK_PAUSED,
115  BTRMGR_IARM_EVENT_MEDIA_TRACK_STOPPED,
116  BTRMGR_IARM_EVENT_MEDIA_TRACK_POSITION,
117  BTRMGR_IARM_EVENT_MEDIA_TRACK_CHANGED,
118  BTRMGR_IARM_EVENT_MEDIA_PLAYBACK_ENDED,
119  BTRMGR_IARM_EVENT_DEVICE_DISCOVERY_STARTED,
120  BTRMGR_IARM_EVENT_DEVICE_OP_READY,
121  BTRMGR_IARM_EVENT_DEVICE_OP_INFORMATION,
122  BTRMGR_IARM_EVENT_MEDIA_PLAYER_NAME,
123  BTRMGR_IARM_EVENT_MEDIA_PLAYER_VOLUME,
124  BTRMGR_IARM_EVENT_MEDIA_PLAYER_EQUALIZER_OFF,
125  BTRMGR_IARM_EVENT_MEDIA_PLAYER_EQUALIZER_ON,
126  BTRMGR_IARM_EVENT_MEDIA_PLAYER_SHUFFLE_OFF,
127  BTRMGR_IARM_EVENT_MEDIA_PLAYER_SHUFFLE_ALLTRACKS,
128  BTRMGR_IARM_EVENT_MEDIA_PLAYER_SHUFFLE_GROUP,
129  BTRMGR_IARM_EVENT_MEDIA_PLAYER_REPEAT_OFF,
130  BTRMGR_IARM_EVENT_MEDIA_PLAYER_REPEAT_SINGLETRACK,
131  BTRMGR_IARM_EVENT_MEDIA_PLAYER_REPEAT_ALLTRACKS,
132  BTRMGR_IARM_EVENT_MEDIA_PLAYER_REPEAT_GROUP,
133  BTRMGR_IARM_EVENT_MEDIA_ALBUM_INFO,
134  BTRMGR_IARM_EVENT_MEDIA_ARTIST_INFO,
135  BTRMGR_IARM_EVENT_MEDIA_GENRE_INFO,
136  BTRMGR_IARM_EVENT_MEDIA_COMPILATION_INFO,
137  BTRMGR_IARM_EVENT_MEDIA_PLAYLIST_INFO,
138  BTRMGR_IARM_EVENT_MEDIA_TRACKLIST_INFO,
139  BTRMGR_IARM_EVENT_MEDIA_TRACK_INFO,
140  BTRMGR_IARM_EVENT_MEDIA_PLAYER_MUTE,
141  BTRMGR_IARM_EVENT_MEDIA_PLAYER_UNMUTE,
142  BTRMGR_IARM_EVENT_DEVICE_MEDIA_STATUS,
143  BTRMGR_IARM_EVENT_MAX
145 
147  unsigned char m_adapterIndex;
148  unsigned char m_limitBeaconDetection;
150 
152  unsigned char m_adapterIndex;
153  char m_name[BTRMGR_NAME_LEN_MAX];
155 
156 typedef struct _BTRMGR_IARMPairDevice_t {
157  unsigned char m_adapterIndex;
158  BTRMgrDeviceHandle m_deviceHandle;
160 
162  unsigned char m_adapterIndex;
163  BTRMgrDeviceHandle m_deviceHandle;
164  BTRMGR_DeviceOperationType_t m_connectAs;
166 
168  unsigned char m_adapterIndex;
169  unsigned char m_powerStatus;
171 
173  unsigned char m_adapterIndex;
174  unsigned char m_isDiscoverable;
175  int m_timeout;
177 
179  unsigned char m_adapterIndex;
180  unsigned char m_setDiscovery;
181  BTRMGR_DeviceOperationType_t m_enBTRMgrDevOpT;
183 
185  unsigned char m_adapterIndex;
186  BTRMgrDeviceHandle m_deviceHandle;
187  BTRMGR_DevicesProperty_t m_deviceProperty;
189 
191  unsigned char m_adapterIndex;
194 
196  unsigned char m_adapterIndex;
197  BTRMGR_PairedDevicesList_t m_devices;
199 
201  unsigned char m_adapterIndex;
204 
205 typedef struct _BTRMGR_IARMStreaming_t {
206  unsigned char m_adapterIndex;
207  BTRMgrDeviceHandle m_deviceHandle;
208  BTRMGR_DeviceOperationType_t m_audioPref;
210 
212  unsigned char m_adapterIndex;
213  unsigned char m_streamingStatus;
215 
217  unsigned char m_adapterIndex;
218  BTRMGR_StreamOut_Type_t m_audioOutType;
220 
221 typedef struct _BTRMGR_IARMEventResp_t {
222  unsigned char m_adapterIndex;
223  BTRMGR_EventResponse_t m_stBTRMgrEvtRsp;
225 
227  unsigned char m_adapterIndex;
228  BTRMgrDeviceHandle m_deviceHandle;
229  BTRMGR_DeviceOperationType_t m_deviceOpType;
230  unsigned char m_volume;
231  unsigned char m_mute;
233 
235  unsigned char m_adapterIndex;
236  BTRMgrDeviceHandle m_deviceHandle;
237  BTRMgrMediaElementHandle m_mediaElementHandle;
238 
239  union {
240  BTRMGR_MediaControlCommand_t m_mediaControlCmd;
241  BTRMGR_MediaTrackInfo_t m_mediaTrackInfo;
242  BTRMGR_MediaPositionInfo_t m_mediaPositionInfo; /* To have a media property list */
243  };
245 
247  unsigned char m_adapterIndex;
248  BTRMgrDeviceHandle m_deviceHandle;
249  BTRMgrMediaElementHandle m_mediaElementHandle;
250  unsigned short m_mediaElementStartIdx;
251  unsigned short m_mediaElementEndIdx;
252  unsigned char m_mediaElementListDepth;
253  BTRMGR_MediaElementType_t m_mediaElementType;
254 
255  union {
256  BTRMGR_MediaElementListInfo_t m_mediaAlbumListInfo;
257  BTRMGR_MediaElementListInfo_t m_mediaArtistListInfo;
258  BTRMGR_MediaElementListInfo_t m_mediaGenreListInfo;
259  BTRMGR_MediaElementListInfo_t m_mediaCompilationInfo;
260  BTRMGR_MediaElementListInfo_t m_mediaPlayListInfo;
261  BTRMGR_MediaElementListInfo_t m_mediaTrackListInfo;
262  };
264 
265 typedef struct _BTRMGR_IARMLeProperty_t {
266  unsigned char m_adapterIndex;
267  char m_propUuid[BTRMGR_MAX_STR_LEN];
268  BTRMgrDeviceHandle m_deviceHandle;
269  BTRMGR_LeProperty_t m_enLeProperty;
270 
271  union {
272  BTRMGR_DeviceServiceList_t m_uuidList;
273  char m_devicePath[BTRMGR_MAX_STR_LEN];
274  char m_servicePath[BTRMGR_MAX_STR_LEN];
275  char m_characteristicPath[BTRMGR_MAX_STR_LEN];
276  char m_value[BTRMGR_MAX_STR_LEN];
277  char m_flags[BTRMGR_LE_FLAG_LIST_SIZE][BTRMGR_NAME_LEN_MAX];
278  unsigned char m_primary;
279  unsigned char m_notifying;
280  };
282 
283 
284 typedef struct _BTRMGR_IARMLeOp_t {
285  unsigned char m_adapterIndex;
286  BTRMgrDeviceHandle m_deviceHandle;
287  char m_uuid[BTRMGR_MAX_STR_LEN];
288  BTRMGR_LeOp_t m_leOpType;
289  char m_opArg[BTRMGR_MAX_STR_LEN];
290  char m_opRes[BTRMGR_MAX_STR_LEN];
292 
294  unsigned char m_adapterIndex;
295  BTRMGR_DiscoveryStatus_t m_discoveryInProgress;
296  BTRMGR_DeviceOperationType_t m_discoveryType;
298 
300  unsigned char m_adapterIndex;
301  unsigned char m_serviceState;
303 
305  unsigned char m_adapterIndex;
306  unsigned char m_serviceState;
308 
309 typedef struct _BTRMGR_IARMGATTValue_t {
310  unsigned char m_adapterIndex;
311  char m_UUID[BTRMGR_MAX_STR_LEN];
312  char m_Value[BTRMGR_MAX_STR_LEN];
313  BTRMGR_LeProperty_t aElement;
315 
317  unsigned char m_adapterIndex;
318  char m_UUID[BTRMGR_MAX_STR_LEN];
319  unsigned char m_ServiceType;
321 
322 typedef struct _BTRMGR_IARMGATTInfo_t {
323  unsigned char m_adapterIndex;
324  char m_ParentUUID[BTRMGR_MAX_STR_LEN];
325  char m_UUID[BTRMGR_MAX_STR_LEN];
326  unsigned short m_Flags;
327  char m_Value[BTRMGR_MAX_STR_LEN];
328  BTRMGR_LeProperty_t m_Element;
330 
331 typedef struct _BTRMGR_IARMAdvtInfo_t {
332  unsigned char m_adapterIndex;
335 
336 typedef struct _BTRMGR_IARMDiagInfo_t {
337  unsigned char m_adapterIndex;
338  char m_UUID[BTRMGR_MAX_STR_LEN];
339  char m_DiagInfo[BTRMGR_MAX_STR_LEN];
340  BTRMGR_LeOp_t m_OpType;
342 
344  unsigned char m_adapterIndex;
345  char m_SSID[BTRMGR_MAX_STR_LEN];
346  char m_Password[BTRMGR_MAX_STR_LEN];
347  int m_SecMode;
349 /** @} */
350 #endif /* __BT_MGR_IARM_INTERFACE_H__ */
_BTRMGR_DeviceServiceList_t
Represents device services list.
Definition: btmgr.h:380
_BTRMGR_IARMDeviceVolumeMute_t
Definition: btmgr_iarm_interface.h:226
_BTRMGR_IARMBeaconDetection_t
Definition: btmgr_iarm_interface.h:146
_BTRMGR_IARMAdapterDiscoverable_t
Definition: btmgr_iarm_interface.h:172
_BTRMGR_IARMGATTValue_t
Definition: btmgr_iarm_interface.h:309
_BTRMGR_IARMPairDevice_t
Definition: btmgr_iarm_interface.h:156
_BTRMGR_IARMPairedDevices_t
Definition: btmgr_iarm_interface.h:195
_BTRMGR_IARMDiscoveredDevices_t
Definition: btmgr_iarm_interface.h:190
_BTRMGR_IARMStreamingStatus_t
Definition: btmgr_iarm_interface.h:211
_BTRMGR_MediaElementListInfo_t
Represents Media Element List.
Definition: btmgr.h:517
_BTRMGR_IARMConnectedDevices_t
Definition: btmgr_iarm_interface.h:200
_BTRMGR_LeCustomAdvertisement_t
Structure for the custom advertisement payload.
Definition: btmgr.h:616
_BTRMGR_IARMAdapterDiscover_t
Definition: btmgr_iarm_interface.h:178
_BTRMGR_IARMDiscoveryStatus_t
Definition: btmgr_iarm_interface.h:293
BTRMGR_DeviceOperationType_t
enum _BTRMGR_DeviceOperationType_t BTRMGR_DeviceOperationType_t
Represents the operation type for bluetooth device.
_BTRMGR_PairedDevicesList_t
Represents the list of paired devices.
Definition: btmgr.h:476
_BTRMGR_IARMAdapterPower_t
Definition: btmgr_iarm_interface.h:167
_BTRMGR_IARMMediaProperty_t
Definition: btmgr_iarm_interface.h:234
_BTRMGR_IARMWifiConnectInfo_t
Definition: btmgr_iarm_interface.h:343
_BTRMGR_ConnectedDevicesList_t
Represents the connected devices list.
Definition: btmgr.h:468
_BTRMGR_IARMEventResp_t
Definition: btmgr_iarm_interface.h:221
_BTRMGR_IARMLeOp_t
Definition: btmgr_iarm_interface.h:284
libIBus.h
RDK IARM-Bus API Declarations.
_BTRMGR_IARMGATTInfo_t
Definition: btmgr_iarm_interface.h:322
_BTRMGR_DiscoveredDevicesList_t
Represents the list of scanned devices.
Definition: btmgr.h:484
BTRMGR_MediaControlCommand_t
enum _BTRMGR_MediaControlCommand_t BTRMGR_MediaControlCommand_t
Represents the commands to control the media files.
_BTRMGR_IARMConnectDevice_t
Definition: btmgr_iarm_interface.h:161
_BTRMGR_IARMEvents_t
_BTRMGR_IARMEvents_t
Represents the events supported by bluetooth manager.
Definition: btmgr_iarm_interface.h:96
_BTRMGR_IARMAdvtInfo_t
Definition: btmgr_iarm_interface.h:331
_BTRMGR_DevicesProperty_t
Represents the property of the device.
Definition: btmgr.h:400
BTRMGR_IARM_Events_t
enum _BTRMGR_IARMEvents_t BTRMGR_IARM_Events_t
Represents the events supported by bluetooth manager.
_BTRMGR_IARMStreamingType_t
Definition: btmgr_iarm_interface.h:216
_BTRMGR_IARMDiagInfo_t
Definition: btmgr_iarm_interface.h:336
BTRMGR_LeProperty_t
enum _BTRMGR_LeProperty_t BTRMGR_LeProperty_t
Represents LE properties.
_BTRMGR_IARMHidGamePadServiceState_t
Definition: btmgr_iarm_interface.h:304
_BTRMGR_IARMGATTServiceInfo_t
Definition: btmgr_iarm_interface.h:316
_BTRMGR_IARMMediaElementListInfo_t
Definition: btmgr_iarm_interface.h:246
_BTRMGR_IARMAudioInServiceState_t
Definition: btmgr_iarm_interface.h:299
BTRMGR_StreamOut_Type_t
enum _BTRMGR_StreamOut_Type_t BTRMGR_StreamOut_Type_t
Represents the stream output types.
_BTRMGR_IARMLeProperty_t
Definition: btmgr_iarm_interface.h:265
_BTRMGR_EventResponse_t
Represents the event response.
Definition: btmgr.h:591
_BTRMGR_MediaPositionInfo_t
Represents the media position info.
Definition: btmgr.h:359
_BTRMGR_MediaTrackInfo_t
Represents the media track info.
Definition: btmgr.h:346
BTRMGR_LeOp_t
enum _BTRMGR_LeOp_t BTRMGR_LeOp_t
Represents the Low energy operations.
_BTRMGR_IARMAdapterName_t
Definition: btmgr_iarm_interface.h:151
_BTRMGR_IARMStreaming_t
Definition: btmgr_iarm_interface.h:205
BTRMGR_DiscoveryStatus_t
enum _BTRMGR_DiscoveryStatus_t BTRMGR_DiscoveryStatus_t
Represents the bluetooth Discovery Status.
BTRMGR_MediaElementType_t
enum _BTRMGR_MediaElementType_t BTRMGR_MediaElementType_t
Represents Media Element Types.
_BTRMGR_IARMDDeviceProperty_t
Definition: btmgr_iarm_interface.h:184