mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 12:14:32 +02:00
component/bt: transport the following modules: btif_config, btif_storage, btif_util
This commit is contained in:
@@ -1,22 +1,16 @@
|
|||||||
/******************************************************************************
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||||
*
|
//
|
||||||
* Copyright (C) 2014 Google, Inc.
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
*
|
// you may not use this file except in compliance with the License.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
// You may obtain a copy of the License at
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#define LOG_TAG "bt_btif_config"
|
// 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.
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -27,8 +21,8 @@
|
|||||||
#include "alarm.h"
|
#include "alarm.h"
|
||||||
#include "allocator.h"
|
#include "allocator.h"
|
||||||
#include "bdaddr.h"
|
#include "bdaddr.h"
|
||||||
#include "btif_config.h"
|
#include "btc_config.h"
|
||||||
#include "btif_util.h"
|
#include "btc_util.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "osi.h"
|
#include "osi.h"
|
||||||
|
|
||||||
@@ -41,7 +35,7 @@ static void timer_config_save(void *data);
|
|||||||
|
|
||||||
// TODO(zachoverflow): Move these two functions out, because they are too specific for this file
|
// TODO(zachoverflow): Move these two functions out, because they are too specific for this file
|
||||||
// {grumpy-cat/no, monty-python/you-make-me-sad}
|
// {grumpy-cat/no, monty-python/you-make-me-sad}
|
||||||
bool btif_get_device_type(const BD_ADDR bd_addr, int *p_device_type)
|
bool btc_get_device_type(const BD_ADDR bd_addr, int *p_device_type)
|
||||||
{
|
{
|
||||||
if (p_device_type == NULL) {
|
if (p_device_type == NULL) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -53,7 +47,7 @@ bool btif_get_device_type(const BD_ADDR bd_addr, int *p_device_type)
|
|||||||
bdstr_t bd_addr_str;
|
bdstr_t bd_addr_str;
|
||||||
bdaddr_to_string(&bda, bd_addr_str, sizeof(bd_addr_str));
|
bdaddr_to_string(&bda, bd_addr_str, sizeof(bd_addr_str));
|
||||||
|
|
||||||
if (!btif_config_get_int(bd_addr_str, "DevType", p_device_type)) {
|
if (!btc_config_get_int(bd_addr_str, "DevType", p_device_type)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,7 +55,7 @@ bool btif_get_device_type(const BD_ADDR bd_addr, int *p_device_type)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_get_address_type(const BD_ADDR bd_addr, int *p_addr_type)
|
bool btc_get_address_type(const BD_ADDR bd_addr, int *p_addr_type)
|
||||||
{
|
{
|
||||||
if (p_addr_type == NULL) {
|
if (p_addr_type == NULL) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -73,7 +67,7 @@ bool btif_get_address_type(const BD_ADDR bd_addr, int *p_addr_type)
|
|||||||
bdstr_t bd_addr_str;
|
bdstr_t bd_addr_str;
|
||||||
bdaddr_to_string(&bda, bd_addr_str, sizeof(bd_addr_str));
|
bdaddr_to_string(&bda, bd_addr_str, sizeof(bd_addr_str));
|
||||||
|
|
||||||
if (!btif_config_get_int(bd_addr_str, "AddrType", p_addr_type)) {
|
if (!btc_config_get_int(bd_addr_str, "AddrType", p_addr_type)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +81,7 @@ static osi_alarm_t *alarm_timer;
|
|||||||
|
|
||||||
// Module lifecycle functions
|
// Module lifecycle functions
|
||||||
|
|
||||||
bool btif_config_init(void)
|
bool btc_config_init(void)
|
||||||
{
|
{
|
||||||
pthread_mutex_init(&lock, NULL);
|
pthread_mutex_init(&lock, NULL);
|
||||||
config = config_new(CONFIG_FILE_PATH);
|
config = config_new(CONFIG_FILE_PATH);
|
||||||
@@ -107,7 +101,7 @@ bool btif_config_init(void)
|
|||||||
// TODO(sharvil): use a non-wake alarm for this once we have
|
// TODO(sharvil): use a non-wake alarm for this once we have
|
||||||
// API support for it. There's no need to wake the system to
|
// API support for it. There's no need to wake the system to
|
||||||
// write back to disk.
|
// write back to disk.
|
||||||
alarm_timer = osi_alarm_new("btif_config", timer_config_save, NULL, CONFIG_SETTLE_PERIOD_MS, false);
|
alarm_timer = osi_alarm_new("btc_config", timer_config_save, NULL, CONFIG_SETTLE_PERIOD_MS, false);
|
||||||
if (!alarm_timer) {
|
if (!alarm_timer) {
|
||||||
LOG_ERROR("%s unable to create alarm.\n", __func__);
|
LOG_ERROR("%s unable to create alarm.\n", __func__);
|
||||||
goto error;
|
goto error;
|
||||||
@@ -125,15 +119,15 @@ error:;
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_shut_down(void)
|
bool btc_config_shut_down(void)
|
||||||
{
|
{
|
||||||
btif_config_flush();
|
btc_config_flush();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_clean_up(void)
|
bool btc_config_clean_up(void)
|
||||||
{
|
{
|
||||||
btif_config_flush();
|
btc_config_flush();
|
||||||
|
|
||||||
osi_alarm_free(alarm_timer);
|
osi_alarm_free(alarm_timer);
|
||||||
config_free(config);
|
config_free(config);
|
||||||
@@ -143,7 +137,7 @@ bool btif_config_clean_up(void)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_has_section(const char *section)
|
bool btc_config_has_section(const char *section)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -155,7 +149,7 @@ bool btif_config_has_section(const char *section)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_exist(const char *section, const char *key)
|
bool btc_config_exist(const char *section, const char *key)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -168,7 +162,7 @@ bool btif_config_exist(const char *section, const char *key)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_get_int(const char *section, const char *key, int *value)
|
bool btc_config_get_int(const char *section, const char *key, int *value)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -185,7 +179,7 @@ bool btif_config_get_int(const char *section, const char *key, int *value)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_set_int(const char *section, const char *key, int value)
|
bool btc_config_set_int(const char *section, const char *key, int value)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -198,7 +192,7 @@ bool btif_config_set_int(const char *section, const char *key, int value)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_get_str(const char *section, const char *key, char *value, int *size_bytes)
|
bool btc_config_get_str(const char *section, const char *key, char *value, int *size_bytes)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -220,7 +214,7 @@ bool btif_config_get_str(const char *section, const char *key, char *value, int
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_set_str(const char *section, const char *key, const char *value)
|
bool btc_config_set_str(const char *section, const char *key, const char *value)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -234,7 +228,7 @@ bool btif_config_set_str(const char *section, const char *key, const char *value
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_get_bin(const char *section, const char *key, uint8_t *value, size_t *length)
|
bool btc_config_get_bin(const char *section, const char *key, uint8_t *value, size_t *length)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -269,7 +263,7 @@ bool btif_config_get_bin(const char *section, const char *key, uint8_t *value, s
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t btif_config_get_bin_length(const char *section, const char *key)
|
size_t btc_config_get_bin_length(const char *section, const char *key)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -287,7 +281,7 @@ size_t btif_config_get_bin_length(const char *section, const char *key)
|
|||||||
return ((value_len % 2) != 0) ? 0 : (value_len / 2);
|
return ((value_len % 2) != 0) ? 0 : (value_len / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_set_bin(const char *section, const char *key, const uint8_t *value, size_t length)
|
bool btc_config_set_bin(const char *section, const char *key, const uint8_t *value, size_t length)
|
||||||
{
|
{
|
||||||
const char *lookup = "0123456789abcdef";
|
const char *lookup = "0123456789abcdef";
|
||||||
|
|
||||||
@@ -317,33 +311,33 @@ bool btif_config_set_bin(const char *section, const char *key, const uint8_t *va
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const btif_config_section_iter_t *btif_config_section_begin(void)
|
const btc_config_section_iter_t *btc_config_section_begin(void)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
return (const btif_config_section_iter_t *)config_section_begin(config);
|
return (const btc_config_section_iter_t *)config_section_begin(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
const btif_config_section_iter_t *btif_config_section_end(void)
|
const btc_config_section_iter_t *btc_config_section_end(void)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
return (const btif_config_section_iter_t *)config_section_end(config);
|
return (const btc_config_section_iter_t *)config_section_end(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
const btif_config_section_iter_t *btif_config_section_next(const btif_config_section_iter_t *section)
|
const btc_config_section_iter_t *btc_config_section_next(const btc_config_section_iter_t *section)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
return (const btif_config_section_iter_t *)config_section_next((const config_section_node_t *)section);
|
return (const btc_config_section_iter_t *)config_section_next((const config_section_node_t *)section);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *btif_config_section_name(const btif_config_section_iter_t *section)
|
const char *btc_config_section_name(const btc_config_section_iter_t *section)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
return config_section_name((const config_section_node_t *)section);
|
return config_section_name((const config_section_node_t *)section);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool btif_config_remove(const char *section, const char *key)
|
bool btc_config_remove(const char *section, const char *key)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(section != NULL);
|
assert(section != NULL);
|
||||||
@@ -356,7 +350,7 @@ bool btif_config_remove(const char *section, const char *key)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void btif_config_save(void)
|
void btc_config_save(void)
|
||||||
{
|
{
|
||||||
assert(alarm_timer != NULL);
|
assert(alarm_timer != NULL);
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
@@ -364,7 +358,7 @@ void btif_config_save(void)
|
|||||||
osi_alarm_set(alarm_timer, CONFIG_SETTLE_PERIOD_MS);
|
osi_alarm_set(alarm_timer, CONFIG_SETTLE_PERIOD_MS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void btif_config_flush(void)
|
void btc_config_flush(void)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(alarm_timer != NULL);
|
assert(alarm_timer != NULL);
|
||||||
@@ -375,7 +369,7 @@ void btif_config_flush(void)
|
|||||||
pthread_mutex_unlock(&lock);
|
pthread_mutex_unlock(&lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
int btif_config_clear(void)
|
int btc_config_clear(void)
|
||||||
{
|
{
|
||||||
assert(config != NULL);
|
assert(config != NULL);
|
||||||
assert(alarm_timer != NULL);
|
assert(alarm_timer != NULL);
|
@@ -5,7 +5,7 @@
|
|||||||
#include "btc_main.h"
|
#include "btc_main.h"
|
||||||
#include "bt_trace.h"
|
#include "bt_trace.h"
|
||||||
#include "bt_target.h"
|
#include "bt_target.h"
|
||||||
#include "btif_storage.h" // TODO: replace with "btc"
|
#include "btc_storage.h"
|
||||||
#include "bta_api.h"
|
#include "bta_api.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ static void btc_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl)
|
|||||||
bt_status_t ret;
|
bt_status_t ret;
|
||||||
LOG_DEBUG("%s: Storing link key. key_type=0x%x",
|
LOG_DEBUG("%s: Storing link key. key_type=0x%x",
|
||||||
__FUNCTION__, p_auth_cmpl->key_type);
|
__FUNCTION__, p_auth_cmpl->key_type);
|
||||||
ret = btif_storage_add_bonded_device(&bd_addr,
|
ret = btc_storage_add_bonded_device(&bd_addr,
|
||||||
p_auth_cmpl->key, p_auth_cmpl->key_type,
|
p_auth_cmpl->key, p_auth_cmpl->key_type,
|
||||||
16);
|
16);
|
||||||
BTC_ASSERTC(ret == BT_STATUS_SUCCESS, "storing link key failed", ret);
|
BTC_ASSERTC(ret == BT_STATUS_SUCCESS, "storing link key failed", ret);
|
||||||
@@ -158,7 +158,7 @@ static void btc_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl)
|
|||||||
/* map the auth failure codes, so we can retry pairing if necessary */
|
/* map the auth failure codes, so we can retry pairing if necessary */
|
||||||
case HCI_ERR_AUTH_FAILURE:
|
case HCI_ERR_AUTH_FAILURE:
|
||||||
case HCI_ERR_KEY_MISSING:
|
case HCI_ERR_KEY_MISSING:
|
||||||
btif_storage_remove_bonded_device(&bd_addr);
|
btc_storage_remove_bonded_device(&bd_addr);
|
||||||
case HCI_ERR_HOST_REJECT_SECURITY:
|
case HCI_ERR_HOST_REJECT_SECURITY:
|
||||||
case HCI_ERR_ENCRY_MODE_NOT_ACCEPTABLE:
|
case HCI_ERR_ENCRY_MODE_NOT_ACCEPTABLE:
|
||||||
case HCI_ERR_UNIT_KEY_USED:
|
case HCI_ERR_UNIT_KEY_USED:
|
||||||
@@ -254,7 +254,7 @@ void btc_dm_sec_cb_handler(btc_msg_t *msg)
|
|||||||
}
|
}
|
||||||
btif_enable_bluetooth_evt(p_data->enable.status);
|
btif_enable_bluetooth_evt(p_data->enable.status);
|
||||||
#endif /* KARL_NOT_IGNORE */
|
#endif /* KARL_NOT_IGNORE */
|
||||||
btif_storage_load_bonded_devices();
|
btc_storage_load_bonded_devices();
|
||||||
btc_enable_bluetooth_evt(p_data->enable.status);
|
btc_enable_bluetooth_evt(p_data->enable.status);
|
||||||
break;
|
break;
|
||||||
case BTA_DM_DISABLE_EVT:
|
case BTA_DM_DISABLE_EVT:
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
#include "btc_dm.h"
|
#include "btc_dm.h"
|
||||||
#include "future.h"
|
#include "future.h"
|
||||||
#include "esp_err.h"
|
#include "esp_err.h"
|
||||||
#include "btif_config.h"
|
#include "btc_config.h"
|
||||||
|
|
||||||
static future_t *main_future[BTC_MAIN_FUTURE_NUM];
|
static future_t *main_future[BTC_MAIN_FUTURE_NUM];
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ void btc_init_callback(void)
|
|||||||
|
|
||||||
static void btc_init_bluetooth(void)
|
static void btc_init_bluetooth(void)
|
||||||
{
|
{
|
||||||
btif_config_init();
|
btc_config_init();
|
||||||
bte_main_boot_entry(btc_init_callback);
|
bte_main_boot_entry(btc_init_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ static void btc_init_bluetooth(void)
|
|||||||
static void btc_deinit_bluetooth(void)
|
static void btc_deinit_bluetooth(void)
|
||||||
{
|
{
|
||||||
bte_main_shutdown();
|
bte_main_shutdown();
|
||||||
btif_config_clean_up();
|
btc_config_clean_up();
|
||||||
future_ready(*btc_main_get_future_p(BTC_MAIN_DEINIT_FUTURE), FUTURE_SUCCESS);
|
future_ready(*btc_main_get_future_p(BTC_MAIN_DEINIT_FUTURE), FUTURE_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,16 +1,29 @@
|
|||||||
#include "btif_storage.h"
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||||
#include "btif_util.h"
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
#include "btc_storage.h"
|
||||||
|
#include "btc_util.h"
|
||||||
#include "osi.h"
|
#include "osi.h"
|
||||||
#include "bt_trace.h"
|
#include "bt_trace.h"
|
||||||
#include "esp_system.h"
|
#include "esp_system.h"
|
||||||
#include "nvs_flash.h"
|
|
||||||
#include "nvs.h"
|
|
||||||
#include "bta_api.h"
|
#include "bta_api.h"
|
||||||
#include "bdaddr.h"
|
#include "bdaddr.h"
|
||||||
#include "btif_config.h"
|
#include "btc_config.h"
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_add_bonded_device
|
** Function btc_storage_add_bonded_device
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Adds the newly bonded device to NVRAM
|
** Description BTIF storage API - Adds the newly bonded device to NVRAM
|
||||||
** along with the link-key, Key type and Pin key length
|
** along with the link-key, Key type and Pin key length
|
||||||
@@ -20,7 +33,7 @@
|
|||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
bt_status_t btif_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
||||||
LINK_KEY link_key,
|
LINK_KEY link_key,
|
||||||
uint8_t key_type,
|
uint8_t key_type,
|
||||||
uint8_t pin_length)
|
uint8_t pin_length)
|
||||||
@@ -28,20 +41,20 @@ bt_status_t btif_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
|||||||
bdstr_t bdstr;
|
bdstr_t bdstr;
|
||||||
|
|
||||||
bdaddr_to_string(remote_bd_addr, bdstr, sizeof(bdstr));
|
bdaddr_to_string(remote_bd_addr, bdstr, sizeof(bdstr));
|
||||||
BTIF_TRACE_EVENT("add to storage: Remote device:%s\n", bdstr);
|
LOG_INFO("add to storage: Remote device:%s\n", bdstr);
|
||||||
|
|
||||||
int ret = btif_config_set_int(bdstr, "LinkKeyType", (int)key_type);
|
int ret = btc_config_set_int(bdstr, "LinkKeyType", (int)key_type);
|
||||||
ret &= btif_config_set_int(bdstr, "PinLength", (int)pin_length);
|
ret &= btc_config_set_int(bdstr, "PinLength", (int)pin_length);
|
||||||
ret &= btif_config_set_bin(bdstr, "LinkKey", link_key, sizeof(LINK_KEY));
|
ret &= btc_config_set_bin(bdstr, "LinkKey", link_key, sizeof(LINK_KEY));
|
||||||
/* write bonded info immediately */
|
/* write bonded info immediately */
|
||||||
btif_config_flush();
|
btc_config_flush();
|
||||||
BTIF_TRACE_EVENT("Storage add rslt %d\n", ret);
|
LOG_INFO("Storage add rslt %d\n", ret);
|
||||||
return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
|
return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_in_fetch_bonded_devices
|
** Function btc_in_fetch_bonded_devices
|
||||||
**
|
**
|
||||||
** Description Internal helper function to fetch the bonded devices
|
** Description Internal helper function to fetch the bonded devices
|
||||||
** from NVRAM
|
** from NVRAM
|
||||||
@@ -49,22 +62,22 @@ bt_status_t btif_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
|||||||
** Returns BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
|
** Returns BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
static bt_status_t btif_in_fetch_bonded_devices(int add)
|
static bt_status_t btc_in_fetch_bonded_devices(int add)
|
||||||
{
|
{
|
||||||
BOOLEAN bt_linkkey_file_found = FALSE;
|
BOOLEAN bt_linkkey_file_found = FALSE;
|
||||||
|
|
||||||
for (const btif_config_section_iter_t *iter = btif_config_section_begin(); iter != btif_config_section_end(); iter = btif_config_section_next(iter)) {
|
for (const btc_config_section_iter_t *iter = btc_config_section_begin(); iter != btc_config_section_end(); iter = btc_config_section_next(iter)) {
|
||||||
const char *name = btif_config_section_name(iter);
|
const char *name = btc_config_section_name(iter);
|
||||||
if (!string_is_bdaddr(name)) {
|
if (!string_is_bdaddr(name)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
BTIF_TRACE_EVENT("Remote device:%s\n", name);
|
LOG_INFO("Remote device:%s\n", name);
|
||||||
LINK_KEY link_key;
|
LINK_KEY link_key;
|
||||||
size_t size = sizeof(link_key);
|
size_t size = sizeof(link_key);
|
||||||
if (btif_config_get_bin(name, "LinkKey", link_key, &size)) {
|
if (btc_config_get_bin(name, "LinkKey", link_key, &size)) {
|
||||||
int linkkey_type;
|
int linkkey_type;
|
||||||
if (btif_config_get_int(name, "LinkKeyType", &linkkey_type)) {
|
if (btc_config_get_int(name, "LinkKeyType", &linkkey_type)) {
|
||||||
//int pin_len;
|
//int pin_len;
|
||||||
//btif_config_get_int(name, "PinLength", &pin_len))
|
//btif_config_get_int(name, "PinLength", &pin_len))
|
||||||
bt_bdaddr_t bd_addr;
|
bt_bdaddr_t bd_addr;
|
||||||
@@ -73,20 +86,20 @@ static bt_status_t btif_in_fetch_bonded_devices(int add)
|
|||||||
DEV_CLASS dev_class = {0, 0, 0};
|
DEV_CLASS dev_class = {0, 0, 0};
|
||||||
int cod;
|
int cod;
|
||||||
int pin_length = 0;
|
int pin_length = 0;
|
||||||
if (btif_config_get_int(name, "DevClass", &cod)) {
|
if (btc_config_get_int(name, "DevClass", &cod)) {
|
||||||
uint2devclass((UINT32)cod, dev_class);
|
uint2devclass((UINT32)cod, dev_class);
|
||||||
}
|
}
|
||||||
btif_config_get_int(name, "PinLength", &pin_length);
|
btc_config_get_int(name, "PinLength", &pin_length);
|
||||||
BTA_DmAddDevice(bd_addr.address, dev_class, link_key, 0, 0,
|
BTA_DmAddDevice(bd_addr.address, dev_class, link_key, 0, 0,
|
||||||
(UINT8)linkkey_type, 0, pin_length);
|
(UINT8)linkkey_type, 0, pin_length);
|
||||||
}
|
}
|
||||||
bt_linkkey_file_found = TRUE;
|
bt_linkkey_file_found = TRUE;
|
||||||
} else {
|
} else {
|
||||||
BTIF_TRACE_ERROR("bounded device:%s, LinkKeyType or PinLength is invalid\n", name);
|
LOG_ERROR("bounded device:%s, LinkKeyType or PinLength is invalid\n", name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!bt_linkkey_file_found) {
|
if (!bt_linkkey_file_found) {
|
||||||
BTIF_TRACE_EVENT("Remote device:%s, no link key\n", name);
|
LOG_INFO("Remote device:%s, no link key\n", name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return BT_STATUS_SUCCESS;
|
return BT_STATUS_SUCCESS;
|
||||||
@@ -95,7 +108,7 @@ static bt_status_t btif_in_fetch_bonded_devices(int add)
|
|||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_load_bonded_devices
|
** Function btc_storage_load_bonded_devices
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Loads all the bonded devices from NVRAM
|
** Description BTIF storage API - Loads all the bonded devices from NVRAM
|
||||||
** and adds to the BTA.
|
** and adds to the BTA.
|
||||||
@@ -105,17 +118,17 @@ static bt_status_t btif_in_fetch_bonded_devices(int add)
|
|||||||
** Returns BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
|
** Returns BT_STATUS_SUCCESS if successful, BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
bt_status_t btif_storage_load_bonded_devices(void)
|
bt_status_t btc_storage_load_bonded_devices(void)
|
||||||
{
|
{
|
||||||
bt_status_t status;
|
bt_status_t status;
|
||||||
status = btif_in_fetch_bonded_devices(1);
|
status = btc_in_fetch_bonded_devices(1);
|
||||||
BTIF_TRACE_EVENT("Storage load rslt %d\n", status);
|
LOG_INFO("Storage load rslt %d\n", status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_remove_bonded_device
|
** Function btc_storage_remove_bonded_device
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
||||||
**
|
**
|
||||||
@@ -123,23 +136,23 @@ bt_status_t btif_storage_load_bonded_devices(void)
|
|||||||
** BT_STATUS_FAIL otherwise
|
** BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
bt_status_t btif_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr)
|
bt_status_t btc_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr)
|
||||||
{
|
{
|
||||||
bdstr_t bdstr;
|
bdstr_t bdstr;
|
||||||
bdaddr_to_string(remote_bd_addr, bdstr, sizeof(bdstr));
|
bdaddr_to_string(remote_bd_addr, bdstr, sizeof(bdstr));
|
||||||
BTIF_TRACE_EVENT("Add to storage: Remote device:%s\n", bdstr);
|
LOG_INFO("Add to storage: Remote device:%s\n", bdstr);
|
||||||
|
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
if (btif_config_exist(bdstr, "LinkKeyType")) {
|
if (btc_config_exist(bdstr, "LinkKeyType")) {
|
||||||
ret &= btif_config_remove(bdstr, "LinkKeyType");
|
ret &= btc_config_remove(bdstr, "LinkKeyType");
|
||||||
}
|
}
|
||||||
if (btif_config_exist(bdstr, "PinLength")) {
|
if (btc_config_exist(bdstr, "PinLength")) {
|
||||||
ret &= btif_config_remove(bdstr, "PinLength");
|
ret &= btc_config_remove(bdstr, "PinLength");
|
||||||
}
|
}
|
||||||
if (btif_config_exist(bdstr, "LinkKey")) {
|
if (btc_config_exist(bdstr, "LinkKey")) {
|
||||||
ret &= btif_config_remove(bdstr, "LinkKey");
|
ret &= btc_config_remove(bdstr, "LinkKey");
|
||||||
}
|
}
|
||||||
/* write bonded info immediately */
|
/* write bonded info immediately */
|
||||||
btif_config_flush();
|
btc_config_flush();
|
||||||
return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
|
return ret ? BT_STATUS_SUCCESS : BT_STATUS_FAIL;
|
||||||
}
|
}
|
@@ -1,54 +1,33 @@
|
|||||||
/******************************************************************************
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||||
*
|
//
|
||||||
* Copyright (c) 2014 The Android Open Source Project
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
// you may not use this file except in compliance with the License.
|
||||||
*
|
// You may obtain a copy of the License at
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* You may obtain a copy of the License at:
|
//
|
||||||
*
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
*
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
// See the License for the specific language governing permissions and
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
// limitations under the License.
|
||||||
* 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: btif_util.c
|
* Filename: btc_util.c
|
||||||
*
|
*
|
||||||
* Description: Miscellaneous helper functions
|
* Description: Miscellaneous helper functions
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
***********************************************************************************/
|
***********************************************************************************/
|
||||||
|
|
||||||
// #include <hardware/bluetooth.h>
|
|
||||||
// #include <hardware/bt_hf.h>
|
|
||||||
// #include <hardware/bt_av.h>
|
|
||||||
// #include <netinet/in.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
|
#include "btc_util.h"
|
||||||
#define LOG_TAG "bt_btif_util"
|
|
||||||
// #include "btif_common.h"
|
|
||||||
// #include "bta_api.h"
|
|
||||||
// #include "gki.h"
|
|
||||||
// #include "btu.h"
|
|
||||||
// #include "bte.h"
|
|
||||||
// #include "btif_dm.h"
|
|
||||||
#include "btif_util.h"
|
|
||||||
// #include "bta_ag_api.h"
|
|
||||||
#include "bta_av_api.h"
|
#include "bta_av_api.h"
|
||||||
// #include "bta_hh_api.h"
|
|
||||||
// #include "bta_hf_client_api.h"
|
|
||||||
// #include "avrc_defs.h"
|
|
||||||
#include "bt_defs.h"
|
#include "bt_defs.h"
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
@@ -211,4 +190,3 @@ void uuid_to_string_legacy(bt_uuid_t *p_uuid, char *str)
|
|||||||
ntohl(uuid4), ntohs(uuid5));
|
ntohl(uuid4), ntohs(uuid5));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
54
components/bt/bluedroid/btc/include/btc_config.h
Normal file
54
components/bt/bluedroid/btc/include/btc_config.h
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
// 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.
|
||||||
|
|
||||||
|
#ifndef __BTC_CONFIG_H__
|
||||||
|
#define __BTC_CONFIG_H__
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
#include "bt_types.h"
|
||||||
|
|
||||||
|
typedef struct btc_config_section_iter_t btc_config_section_iter_t;
|
||||||
|
|
||||||
|
bool btc_config_init(void);
|
||||||
|
bool btc_config_shut_down(void);
|
||||||
|
bool btc_config_clean_up(void);
|
||||||
|
|
||||||
|
bool btc_config_has_section(const char *section);
|
||||||
|
bool btc_config_exist(const char *section, const char *key);
|
||||||
|
bool btc_config_get_int(const char *section, const char *key, int *value);
|
||||||
|
bool btc_config_set_int(const char *section, const char *key, int value);
|
||||||
|
bool btc_config_get_str(const char *section, const char *key, char *value, int *size_bytes);
|
||||||
|
bool btc_config_set_str(const char *section, const char *key, const char *value);
|
||||||
|
bool btc_config_get_bin(const char *section, const char *key, uint8_t *value, size_t *length);
|
||||||
|
bool btc_config_set_bin(const char *section, const char *key, const uint8_t *value, size_t length);
|
||||||
|
bool btc_config_remove(const char *section, const char *key);
|
||||||
|
|
||||||
|
size_t btc_config_get_bin_length(const char *section, const char *key);
|
||||||
|
|
||||||
|
const btc_config_section_iter_t *btc_config_section_begin(void);
|
||||||
|
const btc_config_section_iter_t *btc_config_section_end(void);
|
||||||
|
const btc_config_section_iter_t *btc_config_section_next(const btc_config_section_iter_t *section);
|
||||||
|
const char *btc_config_section_name(const btc_config_section_iter_t *section);
|
||||||
|
|
||||||
|
void btc_config_save(void);
|
||||||
|
void btc_config_flush(void);
|
||||||
|
int btc_config_clear(void);
|
||||||
|
|
||||||
|
// TODO(zachoverflow): Eww...we need to move these out. These are peer specific, not config general.
|
||||||
|
bool btc_get_address_type(const BD_ADDR bd_addr, int *p_addr_type);
|
||||||
|
bool btc_get_device_type(const BD_ADDR bd_addr, int *p_device_type);
|
||||||
|
|
||||||
|
#endif
|
@@ -1,29 +1,27 @@
|
|||||||
/******************************************************************************
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||||
*
|
//
|
||||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
*
|
// you may not use this file except in compliance with the License.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
// You may obtain a copy of the License at
|
||||||
* 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
|
||||||
*
|
//
|
||||||
* 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,
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
// See the License for the specific language governing permissions and
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// limitations under the License.
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
#ifndef __BTC_STORAGE_H__
|
||||||
*
|
#define __BTC_STORAGE_H__
|
||||||
******************************************************************************/
|
|
||||||
#ifndef __BTIF_STORAGE_H__
|
|
||||||
#define __BTIF_STORAGE_H__
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "bt_defs.h"
|
#include "bt_defs.h"
|
||||||
#include "bt_types.h"
|
#include "bt_types.h"
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_add_bonded_device
|
** Function btc_storage_add_bonded_device
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Adds the newly bonded device to NVRAM
|
** Description BTIF storage API - Adds the newly bonded device to NVRAM
|
||||||
** along with the link-key, Key type and Pin key length
|
** along with the link-key, Key type and Pin key length
|
||||||
@@ -32,14 +30,14 @@
|
|||||||
** BT_STATUS_FAIL otherwise
|
** BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
bt_status_t btif_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
||||||
LINK_KEY link_key,
|
LINK_KEY link_key,
|
||||||
uint8_t key_type,
|
uint8_t key_type,
|
||||||
uint8_t pin_length);
|
uint8_t pin_length);
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_remove_bonded_device
|
** Function btc_storage_remove_bonded_device
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
||||||
**
|
**
|
||||||
@@ -47,11 +45,11 @@ bt_status_t btif_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
|
|||||||
** BT_STATUS_FAIL otherwise
|
** BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
bt_status_t btif_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr);
|
bt_status_t btc_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr);
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
** Function btif_storage_remove_bonded_device
|
** Function btc_storage_remove_bonded_device
|
||||||
**
|
**
|
||||||
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
** Description BTIF storage API - Deletes the bonded device from NVRAM
|
||||||
**
|
**
|
||||||
@@ -59,8 +57,6 @@ bt_status_t btif_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr);
|
|||||||
** BT_STATUS_FAIL otherwise
|
** BT_STATUS_FAIL otherwise
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
bt_status_t btif_storage_load_bonded_devices(void);
|
bt_status_t btc_storage_load_bonded_devices(void);
|
||||||
|
|
||||||
|
#endif /* BTC_STORAGE_H */
|
||||||
|
|
||||||
#endif /* BTIF_STORAGE_H */
|
|
@@ -1,42 +1,32 @@
|
|||||||
/******************************************************************************
|
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||||
*
|
//
|
||||||
* Copyright (c) 2014 The Android Open Source Project
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
// you may not use this file except in compliance with the License.
|
||||||
*
|
// You may obtain a copy of the License at
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef BTIF_UTIL_H
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
#define BTIF_UTIL_H
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
#ifndef __BTC_UTIL_H__
|
||||||
|
#define __BTC_UTIL_H__
|
||||||
|
|
||||||
// #include <hardware/bluetooth.h>
|
|
||||||
// #include <hardware/bt_hf.h>
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
// #include <sys/time.h>
|
|
||||||
|
|
||||||
#include "bt_types.h"
|
#include "bt_types.h"
|
||||||
// #include "bt_utils.h"
|
|
||||||
#include "bt_defs.h"
|
#include "bt_defs.h"
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** Constants & Macros
|
** Constants & Macros
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
#define CASE_RETURN_STR(const) case const: return #const;
|
#define CASE_RETURN_STR(const) case const: return #const;
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
** Type definitions for callback functions
|
** Type definitions for callback functions
|
||||||
********************************************************************************/
|
********************************************************************************/
|
||||||
|
|
||||||
typedef char bdstr_t[18];
|
typedef char bdstr_t[18];
|
||||||
|
|
||||||
|
|
||||||
@@ -54,4 +44,4 @@ void uuid16_to_uuid128(uint16_t uuid16, bt_uuid_t *uuid128);
|
|||||||
void uuid_to_string_legacy(bt_uuid_t *p_uuid, char *str);
|
void uuid_to_string_legacy(bt_uuid_t *p_uuid, char *str);
|
||||||
void string_to_uuid(char *str, bt_uuid_t *p_uuid);
|
void string_to_uuid(char *str, bt_uuid_t *p_uuid);
|
||||||
|
|
||||||
#endif /* BTIF_UTIL_H */
|
#endif /* __BTC_UTIL_H__ */
|
@@ -33,7 +33,7 @@
|
|||||||
#include "bta_av_sbc.h"
|
#include "bta_av_sbc.h"
|
||||||
#include "btc_media.h"
|
#include "btc_media.h"
|
||||||
#include "btc_av_co.h"
|
#include "btc_av_co.h"
|
||||||
#include "btif_util.h"
|
#include "btc_util.h"
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
** Constants
|
** Constants
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
#include "btc_dm.h"
|
#include "btc_dm.h"
|
||||||
#include "btc_av.h"
|
#include "btc_av.h"
|
||||||
#include "btc_avrc.h"
|
#include "btc_avrc.h"
|
||||||
#include "btif_util.h"
|
#include "btc_util.h"
|
||||||
#include "btc_profile_queue.h"
|
#include "btc_profile_queue.h"
|
||||||
#include "bta_api.h"
|
#include "bta_api.h"
|
||||||
#include "btc_media.h"
|
#include "btc_media.h"
|
||||||
|
@@ -53,7 +53,7 @@
|
|||||||
#include "bt_defs.h"
|
#include "bt_defs.h"
|
||||||
#include "btc_av.h"
|
#include "btc_av.h"
|
||||||
#include "btc_sm.h"
|
#include "btc_sm.h"
|
||||||
#include "btif_util.h"
|
#include "btc_util.h"
|
||||||
#if (BTA_AV_SINK_INCLUDED == TRUE)
|
#if (BTA_AV_SINK_INCLUDED == TRUE)
|
||||||
#include "oi_codec_sbc.h"
|
#include "oi_codec_sbc.h"
|
||||||
#include "oi_status.h"
|
#include "oi_status.h"
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
#include "gki.h"
|
#include "gki.h"
|
||||||
|
|
||||||
#include "btc_common.h"
|
#include "btc_common.h"
|
||||||
#include "btif_util.h"
|
#include "btc_util.h"
|
||||||
#include "btc_av.h"
|
#include "btc_av.h"
|
||||||
#include "btc_avrc.h"
|
#include "btc_avrc.h"
|
||||||
#include "uinput.h"
|
#include "uinput.h"
|
||||||
|
1925
components/bt/bluedroid/btif/btif_rc.c.bak
Executable file
1925
components/bt/bluedroid/btif/btif_rc.c.bak
Executable file
File diff suppressed because it is too large
Load Diff
@@ -1,123 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 The Android Open Source Project
|
|
||||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef BTIF_COMMON_H
|
|
||||||
#define BTIF_COMMON_H
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
// #include <hardware/bluetooth.h>
|
|
||||||
|
|
||||||
#include "bt_types.h"
|
|
||||||
#include "bta_api.h"
|
|
||||||
#include "osi.h"
|
|
||||||
|
|
||||||
// #include "osi/include/log.h"
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Constants & Macros
|
|
||||||
********************************************************************************/
|
|
||||||
#define ASSERTC(cond, msg, val) if (!(cond)) { LOG_ERROR( \
|
|
||||||
"### ASSERT : %s line %d %s (%d) ###", __FILE__, __LINE__, msg, val);}
|
|
||||||
|
|
||||||
/* Calculate start of event enumeration; id is top 8 bits of event */
|
|
||||||
#define BTIF_SIG_START(id) ((id) << 8)
|
|
||||||
|
|
||||||
/* For upstream the MSB bit is always SET */
|
|
||||||
#define BTIF_SIG_CB_BIT (0x8000)
|
|
||||||
#define BTIF_SIG_CB_START(id) (((id) << 8) | BTIF_SIG_CB_BIT)
|
|
||||||
|
|
||||||
/* BTIF sub-systems */
|
|
||||||
#define BTIF_CORE 0
|
|
||||||
#define BTIF_DM 1
|
|
||||||
// #define BTIF_HFP 2
|
|
||||||
// #define BTIF_AV 3
|
|
||||||
// #define BTIF_PAN 4
|
|
||||||
// #define BTIF_HF_CLIENT 5
|
|
||||||
|
|
||||||
#define HAL_CBACK(P_CB, P_CBACK, ...)\
|
|
||||||
if (P_CB && P_CB->P_CBACK) { \
|
|
||||||
BTIF_TRACE_API("HAL %s->%s", #P_CB, #P_CBACK); \
|
|
||||||
P_CB->P_CBACK(__VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
else { \
|
|
||||||
ASSERTC(0, "Callback is NULL", 0); \
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BTIF events for requests that require context switch to btif task
|
|
||||||
* on downstreams path
|
|
||||||
*/
|
|
||||||
enum {
|
|
||||||
BTIF_CORE_API_START = BTIF_SIG_START(BTIF_CORE),
|
|
||||||
/* add here */
|
|
||||||
|
|
||||||
BTIF_DM_API_START = BTIF_SIG_START(BTIF_DM),
|
|
||||||
BTIF_DM_ENABLE_SERVICE,
|
|
||||||
BTIF_DM_DISABLE_SERVICE,
|
|
||||||
/* add here */
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
SIG_BTIF_WORK = 0xff
|
|
||||||
};
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Type definitions for callback functions
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
typedef void (tBTIF_CBACK) (UINT16 event, char *p_param);
|
|
||||||
typedef void (tBTIF_COPY_CBACK) (UINT16 event, char *p_dest, char *p_src);
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Type definitions and return values
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
/* this type handles all btif context switches between BTU and HAL */
|
|
||||||
typedef struct {
|
|
||||||
BT_HDR hdr;
|
|
||||||
tBTIF_CBACK *p_cb; /* context switch callback */
|
|
||||||
|
|
||||||
/* parameters passed to callback */
|
|
||||||
UINT16 event; /* message event id */
|
|
||||||
char p_param[0]; /* parameter area needs to be last */
|
|
||||||
} tBTIF_CONTEXT_SWITCH_CBACK;
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
** Functions
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
bt_status_t btif_transfer_context (tBTIF_CBACK *p_cback, UINT16 event, char *p_params,
|
|
||||||
int param_len, tBTIF_COPY_CBACK *p_copy_cback);
|
|
||||||
tBTA_SERVICE_MASK btif_get_enabled_services_mask(void);
|
|
||||||
bt_status_t btif_enable_service(tBTA_SERVICE_ID service_id);
|
|
||||||
bt_status_t btif_disable_service(tBTA_SERVICE_ID service_id);
|
|
||||||
int btif_is_enabled(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BTIF_Events
|
|
||||||
*/
|
|
||||||
void btif_enable_bluetooth_evt(tBTA_STATUS status);
|
|
||||||
void btif_disable_bluetooth_evt(void);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* BTIF_COMMON_H */
|
|
@@ -1,58 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright (C) 2014 Google, Inc.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <stdbool.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#include "bt_types.h"
|
|
||||||
|
|
||||||
static const char BTIF_CONFIG_MODULE[] = "btif_config_module";
|
|
||||||
|
|
||||||
typedef struct btif_config_section_iter_t btif_config_section_iter_t;
|
|
||||||
|
|
||||||
bool btif_config_init(void);
|
|
||||||
bool btif_config_shut_down(void);
|
|
||||||
bool btif_config_clean_up(void);
|
|
||||||
|
|
||||||
bool btif_config_has_section(const char *section);
|
|
||||||
bool btif_config_exist(const char *section, const char *key);
|
|
||||||
bool btif_config_get_int(const char *section, const char *key, int *value);
|
|
||||||
bool btif_config_set_int(const char *section, const char *key, int value);
|
|
||||||
bool btif_config_get_str(const char *section, const char *key, char *value, int *size_bytes);
|
|
||||||
bool btif_config_set_str(const char *section, const char *key, const char *value);
|
|
||||||
bool btif_config_get_bin(const char *section, const char *key, uint8_t *value, size_t *length);
|
|
||||||
bool btif_config_set_bin(const char *section, const char *key, const uint8_t *value, size_t length);
|
|
||||||
bool btif_config_remove(const char *section, const char *key);
|
|
||||||
|
|
||||||
size_t btif_config_get_bin_length(const char *section, const char *key);
|
|
||||||
|
|
||||||
const btif_config_section_iter_t *btif_config_section_begin(void);
|
|
||||||
const btif_config_section_iter_t *btif_config_section_end(void);
|
|
||||||
const btif_config_section_iter_t *btif_config_section_next(const btif_config_section_iter_t *section);
|
|
||||||
const char *btif_config_section_name(const btif_config_section_iter_t *section);
|
|
||||||
|
|
||||||
void btif_config_save(void);
|
|
||||||
void btif_config_flush(void);
|
|
||||||
int btif_config_clear(void);
|
|
||||||
|
|
||||||
// TODO(zachoverflow): Eww...we need to move these out. These are peer specific, not config general.
|
|
||||||
bool btif_get_address_type(const BD_ADDR bd_addr, int *p_addr_type);
|
|
||||||
bool btif_get_device_type(const BD_ADDR bd_addr, int *p_device_type);
|
|
||||||
|
|
@@ -1,32 +0,0 @@
|
|||||||
/******************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright (C) 2009-2012 Broadcom Corporation
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
#ifndef BTIF_DM_H
|
|
||||||
#define BTIF_DM_H
|
|
||||||
|
|
||||||
#include "bta_api.h"
|
|
||||||
/************************************************************************************
|
|
||||||
** Functions
|
|
||||||
********************************************************************************/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BTIF callback to switch context from bte to btif
|
|
||||||
*/
|
|
||||||
void bte_dm_evt(tBTA_DM_SEC_EVT event, tBTA_DM_SEC *p_data);
|
|
||||||
|
|
||||||
#endif
|
|
Reference in New Issue
Block a user