2018-05-21 03:33:30 +00:00
|
|
|
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
|
|
|
|
//
|
|
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
// you may not use this file except in compliance with the License.
|
|
|
|
// You may obtain a copy of the License at
|
|
|
|
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
//
|
|
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
// See the License for the specific language governing permissions and
|
|
|
|
// limitations under the License.
|
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
*
|
|
|
|
* Filename: btc_hf_client.h
|
|
|
|
*
|
|
|
|
* Description: Main API header file for all BTC HF client functions accessed
|
|
|
|
* from internal stack.
|
|
|
|
*
|
|
|
|
*******************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __BTC_HF_CLIENT_H__
|
|
|
|
#define __BTC_HF_CLIENT_H__
|
|
|
|
|
|
|
|
#include "common/bt_target.h"
|
|
|
|
#include "esp_hf_client_api.h"
|
|
|
|
#include "btc/btc_task.h"
|
|
|
|
#include "btc/btc_common.h"
|
|
|
|
#include "bta/bta_hf_client_api.h"
|
|
|
|
|
|
|
|
#if (BTC_HF_CLIENT_INCLUDED == TRUE)
|
|
|
|
/*******************************************************************************
|
|
|
|
** Type definitions for callback functions
|
|
|
|
********************************************************************************/
|
|
|
|
typedef enum {
|
|
|
|
BTC_HF_CLIENT_INIT_EVT,
|
|
|
|
BTC_HF_CLIENT_DEINIT_EVT,
|
|
|
|
BTC_HF_CLIENT_CONNECT_EVT,
|
|
|
|
BTC_HF_CLIENT_DISCONNECT_EVT,
|
|
|
|
BTC_HF_CLIENT_CONNECT_AUDIO_EVT,
|
|
|
|
BTC_HF_CLIENT_DISCONNECT_AUDIO_EVT,
|
|
|
|
BTC_HF_CLIENT_START_VOICE_RECOGNITION_EVT,
|
|
|
|
BTC_HF_CLIENT_STOP_VOICE_RECOGNITION_EVT,
|
|
|
|
BTC_HF_CLIENT_VOLUME_UPDATE_EVT,
|
|
|
|
BTC_HF_CLIENT_DIAL_EVT,
|
|
|
|
BTC_HF_CLIENT_DIAL_MEMORY_EVT,
|
|
|
|
BTC_HF_CLIENT_SEND_CHLD_CMD_EVT,
|
|
|
|
BTC_HF_CLIENT_SEND_BTRH_CMD_EVT,
|
|
|
|
BTC_HF_CLIENT_ANSWER_CALL_EVT,
|
|
|
|
BTC_HF_CLIENT_REJECT_CALL_EVT,
|
|
|
|
BTC_HF_CLIENT_QUERY_CURRENT_CALLS_EVT,
|
|
|
|
BTC_HF_CLIENT_QUERY_CURRENT_OPERATOR_NAME_EVT,
|
|
|
|
BTC_HF_CLIENT_RETRIEVE_SUBSCRIBER_INFO_EVT,
|
|
|
|
BTC_HF_CLIENT_SEND_DTMF_EVT,
|
|
|
|
BTC_HF_CLIENT_REQUEST_LAST_VOICE_TAG_NUMBER_EVT,
|
|
|
|
BTC_HF_CLIENT_REGISTER_DATA_CALLBACK_EVT,
|
2019-06-20 10:01:02 +00:00
|
|
|
BTC_HF_CLIENT_SEND_NREC_EVT,
|
2018-05-21 03:33:30 +00:00
|
|
|
} btc_hf_client_act_t;
|
|
|
|
|
|
|
|
/* btc_hf_client_args_t */
|
|
|
|
typedef union {
|
|
|
|
// BTC_HF_CLIENT_CONNECT_EVT
|
|
|
|
bt_bdaddr_t connect;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_DISCONNECT_EVT
|
|
|
|
bt_bdaddr_t disconnect;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_CONNECT_AUDIO_EVT
|
|
|
|
bt_bdaddr_t connect_audio;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_DISCONNECT_AUDIO_EVT
|
|
|
|
bt_bdaddr_t disconnect_audio;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_VOLUME_UPDATE_EVT,
|
|
|
|
struct volume_update_args {
|
|
|
|
esp_hf_volume_control_target_t type;
|
|
|
|
int volume;
|
|
|
|
} volume_update;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_DIAL_EVT
|
|
|
|
struct dial_args {
|
|
|
|
char number[ESP_BT_HF_CLIENT_NUMBER_LEN + 1];
|
|
|
|
} dial;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_DIAL_MEMORY_EVT
|
|
|
|
struct dial_memory_args {
|
|
|
|
int location;
|
|
|
|
} dial_memory;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_SEND_CHLD_CMD_EVT
|
|
|
|
struct send_chld_cmd_args {
|
|
|
|
esp_hf_chld_type_t type;
|
|
|
|
int idx;
|
|
|
|
} chld;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_SEND_BTRH_CMD_EVT
|
|
|
|
struct send_btrh_cmd_args {
|
|
|
|
esp_hf_btrh_cmd_t cmd;
|
|
|
|
} btrh;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_SEND_DTMF_EVT
|
|
|
|
struct send_dtmf {
|
|
|
|
char code;
|
|
|
|
} send_dtmf;
|
|
|
|
|
|
|
|
// BTC_HF_CLIENT_REGISTER_DATA_CALLBACK_EVT
|
|
|
|
struct reg_data_callback {
|
|
|
|
esp_hf_client_incoming_data_cb_t recv;
|
|
|
|
esp_hf_client_outgoing_data_cb_t send;
|
|
|
|
} reg_data_cb;
|
|
|
|
} btc_hf_client_args_t;
|
|
|
|
|
2018-11-06 07:34:38 +00:00
|
|
|
/************************************************************************************
|
|
|
|
** Local type definitions
|
|
|
|
************************************************************************************/
|
|
|
|
/* BTC-HF control block to map bdaddr to BTA handle */
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
bool initialized;
|
|
|
|
UINT16 handle;
|
|
|
|
bt_bdaddr_t connected_bda;
|
|
|
|
esp_hf_client_connection_state_t state;
|
|
|
|
esp_hf_vr_state_t vr_state;
|
|
|
|
tBTA_HF_CLIENT_PEER_FEAT peer_feat;
|
|
|
|
tBTA_HF_CLIENT_CHLD_FEAT chld_feat;
|
|
|
|
} btc_hf_client_cb_t;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
UINT32 btc_hf_client_features;
|
|
|
|
btc_hf_client_cb_t btc_hf_client_cb;
|
|
|
|
esp_hf_client_incoming_data_cb_t btc_hf_client_incoming_data_cb;
|
|
|
|
esp_hf_client_outgoing_data_cb_t btc_hf_client_outgoing_data_cb;
|
|
|
|
}hf_client_local_param_t;
|
|
|
|
|
|
|
|
#if HFP_DYNAMIC_MEMORY == TRUE
|
|
|
|
extern hf_client_local_param_t *hf_client_local_param_ptr;
|
|
|
|
#define hf_client_local_param (*hf_client_local_param_ptr)
|
|
|
|
#endif
|
|
|
|
|
2018-05-21 03:33:30 +00:00
|
|
|
/*******************************************************************************
|
|
|
|
** BTC HF AG API
|
|
|
|
********************************************************************************/
|
|
|
|
|
|
|
|
void btc_hf_client_call_handler(btc_msg_t *msg);
|
|
|
|
|
|
|
|
void btc_hf_client_cb_handler(btc_msg_t *msg);
|
|
|
|
|
|
|
|
void btc_hf_client_incoming_data_cb_to_app(const uint8_t *data, uint32_t len);
|
|
|
|
|
|
|
|
uint32_t btc_hf_client_outgoing_data_cb_to_app(uint8_t *data, uint32_t len);
|
|
|
|
#endif ///BTC_HF_CLIENT_INCLUDED == TRUE
|
|
|
|
|
|
|
|
#endif /* __BTC_HF_CLIENT_H__ */
|