Infineon Logo AIROC BTSDK v4.9 - Documentation
 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Synchronous Connection Oriented (SCO) Channel

Data Structures

struct  wiced_bt_sco_params_t
 Subset for the enhanced setup/accept synchronous connection paramters See BT 4.1 or later HCI spec for details. More...
 
struct  wiced_bt_voice_path_setup_t
 SCO path config. More...
 

Macros

#define WICED_BT_SCO_CONNECTION_ACCEPT   0x00
 Status accept connection.
 
#define WICED_BT_SCO_CONNECTION_REJECT_RESOURCES   0x0D
 Status reject connection due to no resources.
 
#define WICED_BT_SCO_CONNECTION_REJECT_SECURITY   0x0E
 Status reject connection due to security.
 
#define WICED_BT_SCO_CONNECTION_REJECT_DEVICE   0x0F
 Status reject connection from peer.
 
#define WICED_INVALID_SCO_INDEX   0xFFFF
 Default SCO index.
 
#define WICED_SCO_LINK_ALL_PKT_MASK   0x003F
 SCO packet type all.
 
#define WICED_SCO_PKT_TYPES_MASK_HV3   0x0004
 SCO packet type HV3.
 
#define WICED_SCO_PKT_TYPES_MASK_EV3   0x0008
 SCO packet type EV3.
 
#define WICED_SCO_PKT_TYPES_MASK_EV4   0x0010
 SCO packet type EV4.
 
#define WICED_SCO_PKT_TYPES_MASK_EV5   0x0020
 SCO packet type EV5.
 
#define WICED_SCO_PKT_TYPES_MASK_NO_2_EV3   0x0040
 SCO packet type 2-EV3.
 
#define WICED_SCO_PKT_TYPES_MASK_NO_3_EV3   0x0080
 SCO packet type 3-EV3.
 
#define WICED_SCO_PKT_TYPES_MASK_NO_2_EV5   0x0100
 SCO packet type 2-EV5.
 
#define WICED_SCO_PKT_TYPES_MASK_NO_3_EV5   0x0200
 SCO packet type 3-EV5.
 
#define WICED_BT_SCO_DATA_CB_GET_LENGTH(ltch_len)   ((ltch_len>>8)&0xff)
 SCO data callback length.
 
#define wiced_bt_sco_create_as_acceptor(p_sco_index)   wiced_bt_sco_create_as_acceptor_ex(NULL, p_sco_index)
 defined this macro for backward compatiblity
 

Typedefs

typedef void( wiced_bt_sco_data_cb_t )(uint16_t sco_channel, uint16_t length, uint8_t *p_data)
 Call back function for pcm data transfer, ltch_len = (length)<<8|(sco_channel)
 

Enumerations

enum  wiced_bt_sco_route_path_t { WICED_BT_SCO_OVER_HCI, WICED_BT_SCO_OVER_PCM }
 SCO route path. More...
 

Functions

wiced_bt_dev_status_t wiced_bt_sco_create_as_initiator (wiced_bt_device_address_t bd_addr, uint16_t *p_sco_index, wiced_bt_sco_params_t *p_params)
 The wiced_sco_lib.a was required to included before we link this function. More...
 
wiced_bt_dev_status_t wiced_bt_sco_create_as_acceptor_ex (wiced_bt_device_address_t remote_bda, uint16_t *p_sco_index)
 Creates a synchronous connection oriented connection as acceptor. More...
 
wiced_bt_dev_status_t wiced_bt_sco_remove (uint16_t sco_index)
 Removes a specific synchronous connection oriented connection. More...
 
void wiced_bt_sco_accept_connection (uint16_t sco_index, uint8_t hci_status, wiced_bt_sco_params_t *p_params)
 The wiced_sco_lib.a was required to be included before we link this function. More...
 
wiced_bt_dev_status_t wiced_bt_sco_setup_voice_path (wiced_bt_voice_path_setup_t *pData)
 The wiced_sco_lib.a was required to include before we link this function. More...
 
wiced_bt_dev_status_t wiced_bt_sco_write_buffer (uint16_t sco_inx, uint8_t *p_data, uint8_t len)
 The wiced_sco_lib.a was required to include before we link this function. More...
 
uint16_t wiced_bt_sco_output_stream (uint16_t sco_index, uint8_t *p_pcmsrc, uint16_t len)
 The wiced_sco_lib.a was required to include before we link this function. More...
 
void wiced_bt_sco_turn_off_pcm_clock (void)
 The wiced_voice_path.a was required to include before we link this function. More...
 

Detailed Description

Enumeration Type Documentation

SCO route path.

Enumerator
WICED_BT_SCO_OVER_HCI 

SCO over HCI to Wiced stack in the host.

WICED_BT_SCO_OVER_PCM 

Not supported yet.

PCM data config for routing over I2S/PCM interface

Function Documentation

void wiced_bt_sco_accept_connection ( uint16_t  sco_index,
uint8_t  hci_status,
wiced_bt_sco_params_t p_params 
)

The wiced_sco_lib.a was required to be included before we link this function.

Called to handle (e)SCO connection request event (wiced_bt_sco_connect_request_event).

Parameters
[in]sco_index: SCO index
[in]hci_status: WICED_BT_SCO_CONNECTION_ACCEPT 0x00 WICED_BT_SCO_CONNECTION_REJECT_RESOURCES 0x0D WICED_BT_SCO_CONNECTION_REJECT_SECURITY 0x0E WICED_BT_SCO_CONNECTION_REJECT_DEVICE 0x0F
[in]p_params: Pointer to the SCO parameter structure
wiced_bt_dev_status_t wiced_bt_sco_create_as_acceptor_ex ( wiced_bt_device_address_t  remote_bda,
uint16_t *  p_sco_index 
)

Creates a synchronous connection oriented connection as acceptor.

Parameters
[in]remote_bda: remote device bd_addr
[out]p_sco_index: SCO index returned
Returns
WICED_BT_UNKNOWN_ADDR : Create connection failed, ACL connection is not up or address is invalid WICED_BT_BUSY : Create connection failed, a SCO connection is already conncted to the same BD address WICED_BT_WRONG_MODE : Create connection failed, link in park mode or automatic un-park is not supported WICED_BT_NO_RESOURCES : Create connection failed, max SCO limit has been reached WICED_BT_PENDING : Create connection successfully, "p_sco_index" is returned
wiced_bt_dev_status_t wiced_bt_sco_create_as_initiator ( wiced_bt_device_address_t  bd_addr,
uint16_t *  p_sco_index,
wiced_bt_sco_params_t p_params 
)

The wiced_sco_lib.a was required to included before we link this function.

Creates a synchronous connection oriented connection as initiator.

Parameters
[in]bd_addr: Peer bd_addr
[in]p_params: Pointer to the SCO parameter structure
[out]p_sco_index: SCO index returned
Returns
WICED_BT_UNKNOWN_ADDR : Create connection failed, ACL connection is not up WICED_BT_BUSY : Create connection failed, another SCO is being conncted to the same BD address WICED_BT_WRONG_MODE : Create connection failed, wrong mode WICED_BT_NO_RESOURCES : Create connection failed, max SCO limit has been reached WICED_BT_PENDING : Create connection successfully, "p_sco_index" is returned
uint16_t wiced_bt_sco_output_stream ( uint16_t  sco_index,
uint8_t *  p_pcmsrc,
uint16_t  len 
)

The wiced_sco_lib.a was required to include before we link this function.

Send pcm data to internal audio pipe.

Parameters
[in]sco_index: SCO index to send the stream
[in]p_pcmsrc: Audio stream source.
[in]len: Length of stream.
Returns
: Return the legth of non transmited stream.
wiced_bt_dev_status_t wiced_bt_sco_remove ( uint16_t  sco_index)

Removes a specific synchronous connection oriented connection.

Parameters
[in]sco_index: SCO index to remove
Returns
WICED_BT_UNKNOWN_ADDR : Remove connection failed, invalid SCO index WICED_BT_NO_RESOURCES : Remove connection failed, no resource WICED_BT_SUCCESS : Remove connection successfully, device is still listening for incoming connection WICED_BT_PENDING : Remove connection successfully
wiced_bt_dev_status_t wiced_bt_sco_setup_voice_path ( wiced_bt_voice_path_setup_t pData)

The wiced_sco_lib.a was required to include before we link this function.

Configure the SCO routing path.

Parameters
[in]pData: To setup SCO routing path
Returns
WICED_BT_SUCCESS : Config success. WICED_BT_PENDING : Command sent. Waiting for command complete event. WICED_BT_BUSY : Command not sent. Waiting for command complete event for prior command.
void wiced_bt_sco_turn_off_pcm_clock ( void  )

The wiced_voice_path.a was required to include before we link this function.

To turn off the PCM/I2S hardware clock This function needs to be called after the application turns off (or mutes audio data in/out of) the codec

Returns
: None
wiced_bt_dev_status_t wiced_bt_sco_write_buffer ( uint16_t  sco_inx,
uint8_t *  p_data,
uint8_t  len 
)

The wiced_sco_lib.a was required to include before we link this function.

This function write SCO data to a specified instance

Parameters
[in]sco_inx: sco connection instance
[in]p_data: Pointer to data
[in]len: Length of data at p_data
Returns
WICED_BT_SUCCESS : data write is successful. WICED_BT_ERROR : generic error WICED_BT_UNKNOWN_ADDR : unknown SCO connection instance.