1 /* 2 * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #include <stdlib.h> 8 #include <string.h> 9 #include "esp_bt_device.h" 10 #include "esp_bt_main.h" 11 #include "device/controller.h" 12 #include "btc/btc_task.h" 13 #include "btc/btc_dev.h" 14 esp_bt_dev_get_address(void)15const uint8_t *esp_bt_dev_get_address(void) 16 { 17 if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) { 18 return NULL; 19 } 20 return controller_get_interface()->get_address()->address; 21 } 22 esp_bt_dev_set_device_name(const char * name)23esp_err_t esp_bt_dev_set_device_name(const char *name) 24 { 25 btc_msg_t msg = {0}; 26 btc_dev_args_t arg; 27 28 if (esp_bluedroid_get_status() != ESP_BLUEDROID_STATUS_ENABLED) { 29 return ESP_ERR_INVALID_STATE; 30 } 31 if (!name){ 32 return ESP_ERR_INVALID_ARG; 33 } 34 if (strlen(name) > BTC_MAX_LOC_BD_NAME_LEN) { 35 return ESP_ERR_INVALID_ARG; 36 } 37 38 msg.sig = BTC_SIG_API_CALL; 39 msg.pid = BTC_PID_DEV; 40 msg.act = BTC_DEV_ACT_SET_DEVICE_NAME; 41 arg.set_dev_name.device_name = (char *)osi_malloc((BTC_MAX_LOC_BD_NAME_LEN + 1) * sizeof(char)); 42 if (!arg.set_dev_name.device_name) { 43 return ESP_ERR_NO_MEM; 44 } 45 46 strcpy(arg.set_dev_name.device_name, name); 47 48 return (btc_transfer_context(&msg, &arg, sizeof(btc_dev_args_t), NULL, NULL) == BT_STATUS_SUCCESS ? ESP_OK : ESP_FAIL); 49 } 50