2016-09-23 03:02:46 +00:00
|
|
|
// Copyright 2015-2016 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.
|
|
|
|
|
2016-09-22 08:40:31 +00:00
|
|
|
#ifndef __BT_H__
|
|
|
|
#define __BT_H__
|
|
|
|
|
2016-09-25 16:50:57 +00:00
|
|
|
#include <stdint.h>
|
2016-09-22 08:40:31 +00:00
|
|
|
#include "esp_err.h"
|
|
|
|
|
2016-09-23 06:54:30 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2016-09-25 16:50:57 +00:00
|
|
|
/**
|
|
|
|
* @brief Initialize BT controller
|
|
|
|
*
|
|
|
|
* This function should be called only once, before any other BT functions are called.
|
|
|
|
*/
|
|
|
|
void bt_controller_init();
|
2016-09-22 08:40:31 +00:00
|
|
|
|
2016-09-25 16:51:56 +00:00
|
|
|
/** @brief: vhci_host_callback
|
2016-09-23 02:48:55 +00:00
|
|
|
* used for vhci call host function to notify what host need to do
|
|
|
|
*
|
|
|
|
* notify_host_send_available: notify host can send packet to controller
|
|
|
|
* notify_host_recv: notify host that controller has packet send to host
|
|
|
|
*/
|
2016-09-22 08:40:31 +00:00
|
|
|
typedef struct vhci_host_callback {
|
2016-09-23 02:48:55 +00:00
|
|
|
|
2016-09-22 08:40:31 +00:00
|
|
|
void (*notify_host_send_available)(void);
|
|
|
|
int (*notify_host_recv)(uint8_t *data, uint16_t len);
|
|
|
|
} vhci_host_callback_t;
|
|
|
|
|
2016-09-25 16:51:56 +00:00
|
|
|
/** @brief: API_vhci_host_check_send_available
|
2016-09-23 02:48:55 +00:00
|
|
|
* used for check actively if the host can send packet to controller or not.
|
|
|
|
* return true for ready to send, false means cannot send packet
|
|
|
|
*/
|
|
|
|
bool API_vhci_host_check_send_available(void);
|
|
|
|
|
2016-09-25 16:51:56 +00:00
|
|
|
/** @brief: API_vhci_host_send_packet
|
2016-09-23 02:48:55 +00:00
|
|
|
* host send packet to controller
|
|
|
|
* param data is the packet point, the param len is the packet length
|
|
|
|
* return void
|
|
|
|
*/
|
|
|
|
void API_vhci_host_send_packet(uint8_t *data, uint16_t len);
|
|
|
|
|
2016-09-25 16:51:56 +00:00
|
|
|
/** @brief: API_vhci_host_register_callback
|
2016-09-23 02:48:55 +00:00
|
|
|
* register the vhci referece callback, the call back
|
|
|
|
* struct defined by vhci_host_callback structure.
|
|
|
|
* param is the vhci_host_callback type variable
|
|
|
|
*/
|
|
|
|
void API_vhci_host_register_callback(const vhci_host_callback_t *callback);
|
2016-09-22 08:40:31 +00:00
|
|
|
|
2016-09-23 06:54:30 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2016-09-22 08:40:31 +00:00
|
|
|
#endif /* __BT_H__ */
|