| /** @file |
| * @brief Handsfree Profile handling. |
| */ |
| |
| /* |
| * Copyright (c) 2015-2016 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| #ifndef __BT_HFP_H |
| #define __BT_HFP_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 */ |
| u8_t type; |
| /* CME error number to be added */ |
| u8_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, u32_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, u32_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, u32_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, u32_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, u32_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, u32_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, u32_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 /* __BT_HFP_H */ |