2 * Copyright (C) 2012 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef ANDROID_INCLUDE_BT_HL_H
18 #define ANDROID_INCLUDE_BT_HL_H
22 /* HL connection states */
26 BTHL_MDEP_ROLE_SOURCE
,
31 BTHL_APP_REG_STATE_REG_SUCCESS
,
32 BTHL_APP_REG_STATE_REG_FAILED
,
33 BTHL_APP_REG_STATE_DEREG_SUCCESS
,
34 BTHL_APP_REG_STATE_DEREG_FAILED
35 } bthl_app_reg_state_t
;
39 BTHL_CHANNEL_TYPE_RELIABLE
,
40 BTHL_CHANNEL_TYPE_STREAMING
,
42 } bthl_channel_type_t
;
45 /* HL connection states */
47 BTHL_CONN_STATE_CONNECTING
,
48 BTHL_CONN_STATE_CONNECTED
,
49 BTHL_CONN_STATE_DISCONNECTING
,
50 BTHL_CONN_STATE_DISCONNECTED
,
51 BTHL_CONN_STATE_DESTROYED
52 } bthl_channel_state_t
;
56 bthl_mdep_role_t mdep_role
;
58 bthl_channel_type_t channel_type
;
59 const char *mdep_description
; /* MDEP description to be used in the SDP (optional); null terminated */
64 const char *application_name
;
65 const char *provider_name
; /* provider name to be used in the SDP (optional); null terminated */
66 const char *srv_name
; /* service name to be used in the SDP (optional); null terminated*/
67 const char *srv_desp
; /* service description to be used in the SDP (optional); null terminated */
69 bthl_mdep_cfg_t
*mdep_cfg
; /* Dynamic array */
72 /** Callback for application registration status.
73 * state will have one of the values from bthl_app_reg_state_t
75 typedef void (* bthl_app_reg_state_callback
)(int app_id
, bthl_app_reg_state_t state
);
77 /** Callback for channel connection state change.
78 * state will have one of the values from
79 * bthl_connection_state_t and fd (file descriptor)
81 typedef void (* bthl_channel_state_callback
)(int app_id
, bt_bdaddr_t
*bd_addr
, int mdep_cfg_index
, int channel_id
, bthl_channel_state_t state
, int fd
);
83 /** BT-HL callback structure. */
85 /** set to sizeof(bthl_callbacks_t) */
87 bthl_app_reg_state_callback app_reg_state_cb
;
88 bthl_channel_state_callback channel_state_cb
;
92 /** Represents the standard BT-HL interface. */
95 /** set to sizeof(bthl_interface_t) */
99 * Register the Bthl callbacks
101 bt_status_t (*init
)( bthl_callbacks_t
* callbacks
);
103 /** Register HL application */
104 bt_status_t (*register_application
) ( bthl_reg_param_t
*p_reg_param
, int *app_id
);
106 /** Unregister HL application */
107 bt_status_t (*unregister_application
) (int app_id
);
109 /** connect channel */
110 bt_status_t (*connect_channel
)(int app_id
, bt_bdaddr_t
*bd_addr
, int mdep_cfg_index
, int *channel_id
);
112 /** destroy channel */
113 bt_status_t (*destroy_channel
)(int channel_id
);
115 /** Close the Bthl callback **/
116 void (*cleanup
)(void);
121 #endif /* ANDROID_INCLUDE_BT_HL_H */