forked from zephyrproject-rtos/zephyr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhfp_hf.h
172 lines (159 loc) · 4.6 KB
/
hfp_hf.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/** @file
* @brief Handsfree Profile handling.
*/
/*
* Copyright (c) 2015-2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_BLUETOOTH_HFP_HF_H_
#define ZEPHYR_INCLUDE_BLUETOOTH_HFP_HF_H_
/**
* @brief Hands Free Profile (HFP)
* @defgroup bt_hfp Hands Free Profile (HFP)
* @ingroup bluetooth
* @{
*/
#include <bluetooth/bluetooth.h>
#ifdef __cplusplus
extern "C" {
#endif
/* AT Commands */
enum bt_hfp_hf_at_cmd {
BT_HFP_HF_ATA,
BT_HFP_HF_AT_CHUP,
};
/*
* Command complete types for the application
*/
#define HFP_HF_CMD_OK 0
#define HFP_HF_CMD_ERROR 1
#define HFP_HF_CMD_CME_ERROR 2
#define HFP_HF_CMD_UNKNOWN_ERROR 4
/** @brief HFP HF Command completion field */
struct bt_hfp_hf_cmd_complete {
/* Command complete status */
uint8_t type;
/* CME error number to be added */
uint8_t cme;
};
/** @brief HFP profile application callback */
struct bt_hfp_hf_cb {
/** HF connected callback to application
*
* If this callback is provided it will be called whenever the
* connection completes.
*
* @param conn Connection object.
*/
void (*connected)(struct bt_conn *conn);
/** HF disconnected callback to application
*
* If this callback is provided it will be called whenever the
* connection gets disconnected, including when a connection gets
* rejected or cancelled or any error in SLC establisment.
*
* @param conn Connection object.
*/
void (*disconnected)(struct bt_conn *conn);
/** HF indicator Callback
*
* This callback provides service indicator value to the application
*
* @param conn Connection object.
* @param value service indicator value received from the AG.
*/
void (*service)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback provides call indicator value to the application
*
* @param conn Connection object.
* @param value call indicator value received from the AG.
*/
void (*call)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback provides call setup indicator value to the application
*
* @param conn Connection object.
* @param value call setup indicator value received from the AG.
*/
void (*call_setup)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback provides call held indicator value to the application
*
* @param conn Connection object.
* @param value call held indicator value received from the AG.
*/
void (*call_held)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback provides signal indicator value to the application
*
* @param conn Connection object.
* @param value signal indicator value received from the AG.
*/
void (*signal)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback provides roaming indicator value to the application
*
* @param conn Connection object.
* @param value roaming indicator value received from the AG.
*/
void (*roam)(struct bt_conn *conn, uint32_t value);
/** HF indicator Callback
*
* This callback battery service indicator value to the application
*
* @param conn Connection object.
* @param value battery indicator value received from the AG.
*/
void (*battery)(struct bt_conn *conn, uint32_t value);
/** HF incoming call Ring indication callback to application
*
* If this callback is provided it will be called whenever there
* is an incoming call.
*
* @param conn Connection object.
*/
void (*ring_indication)(struct bt_conn *conn);
/** HF notify command completed callback to application
*
* The command sent from the application is notified about its status
*
* @param conn Connection object.
* @param cmd structure contains status of the command including cme.
*/
void (*cmd_complete_cb)(struct bt_conn *conn,
struct bt_hfp_hf_cmd_complete *cmd);
};
/** @brief Register HFP HF profile
*
* Register Handsfree profile callbacks to monitor the state and get the
* required HFP details to display.
*
* @param cb callback structure.
*
* @return 0 in case of success or negative value in case of error.
*/
int bt_hfp_hf_register(struct bt_hfp_hf_cb *cb);
/** @brief Handsfree client Send AT
*
* Send specific AT commands to handsfree client profile.
*
* @param conn Connection object.
* @param cmd AT command to be sent.
*
* @return 0 in case of success or negative value in case of error.
*/
int bt_hfp_hf_send_cmd(struct bt_conn *conn, enum bt_hfp_hf_at_cmd cmd);
#ifdef __cplusplus
}
#endif
/**
* @}
*/
#endif /* ZEPHYR_INCLUDE_BLUETOOTH_HFP_HF_H_ */