/* * Copyright 2016-2023, Cypress Semiconductor Corporation or * an affiliate of Cypress Semiconductor Corporation. All rights reserved. * * This software, including source code, documentation and related * materials ("Software") is owned by Cypress Semiconductor Corporation * or one of its affiliates ("Cypress") and is protected by and subject to * worldwide patent protection (United States and foreign), * United States copyright laws and international treaty provisions. * Therefore, you may use this Software only as provided in the license * agreement accompanying the software package from which you * obtained this Software ("EULA"). * If no EULA applies, Cypress hereby grants you a personal, non-exclusive, * non-transferable license to copy, modify, and compile the Software * source code solely for use in connection with Cypress's * integrated circuit products. Any reproduction, modification, translation, * compilation, or representation of this Software except as specified * above is prohibited without the express written permission of Cypress. * * Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress * reserves the right to make changes to the Software without notice. Cypress * does not assume any liability arising out of the application or use of the * Software or any product or circuit described in the Software. Cypress does * not authorize its products for use in any products where a malfunction or * failure of the Cypress product may reasonably be expected to result in * significant property damage, injury or death ("High Risk Product"). By * including Cypress's product in a High Risk Product, the manufacturer * of such system or application assumes all risk of such use and in doing * so agrees to indemnify Cypress against all liability. */ /** @file * * Bluetooth Management (BTM) Application Programming Interface * * The BTM consists of several management entities: * 1. Device Control - controls the local device * 2. Device Discovery - manages inquiries, discover database * 3. ACL Channels - manages ACL connections (BR/EDR and LE) * 4. SCO Channels - manages SCO connections * 5. Security - manages all security functionality * 6. Power Management - manages park, sniff, hold, etc. * * WICED Bluetooth Framework Functions */ #pragma once #include "wiced_bt_cfg.h" #include "wiced_bt_dev.h" /****************************************************** * Function Declarations ******************************************************/ #ifdef __cplusplus extern "C" { #endif /****************************************************************************/ /** * * @ingroup wiced_bt_cfg * * @{ */ /****************************************************************************/ /** * * Initialize the Bluetooth controller and stack; register * callback for Bluetooth event notification. * * @param[in] p_bt_management_cback : Callback for receiving Bluetooth management events * @param[in] p_bt_cfg_settings : Bluetooth stack configuration #wiced_bt_cfg_settings_t * * @return WICED_BT_SUCCESS : on success; \n * WICED_BT_FAILED : if an error occurred * @note This API must be called before using any BT functionality. \n * If p_bt_cfg_settings is null, stack uses default parameters defined in wiced_bt_cfg.h \n * However, it is strongly recommended that applications define the configuration to appropriate values based on the application use case. */ wiced_result_t wiced_bt_stack_init(wiced_bt_management_cback_t *p_bt_management_cback, const wiced_bt_cfg_settings_t *p_bt_cfg_settings); /** * This is a blocking call (returns after all de-initialisation procedures are complete) * It is recommended that the application disconnect any outstanding connections prior to invoking this function. * * @return WICED_BT_SUCCESS : on success; \n * WICED_BT_ERROR : if an error occurred */ wiced_result_t wiced_bt_stack_deinit( void ); /**@} wicedbt_Framework */ #ifdef __cplusplus } #endif