1
0
mirror of https://github.com/bluekitchen/btstack.git synced 2025-03-25 16:43:28 +00:00

use HAVE_STDIO in HFP/HSP examples

This commit is contained in:
Milanka Ringwald 2016-03-23 14:37:26 +01:00
parent 5e4b451e64
commit 1bbaca756a
4 changed files with 35 additions and 54 deletions

@ -76,10 +76,8 @@ const uint32_t hfp_service_buffer[150/4]; // implicit alignment to 4-byte memo
const uint8_t rfcomm_channel_nr = 1;
const char hfp_ag_service_name[] = "BTstack HFP AG Test";
static bd_addr_t device_addr;
static bd_addr_t pts_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
//static bd_addr_t pts_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static bd_addr_t speaker_addr = {0x00, 0x21, 0x3C, 0xAC, 0xF7, 0x38};
static bd_addr_t device_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
static uint8_t codecs[1] = {HFP_CODEC_CVSD};
static uint16_t handle = -1;
static int memory_1_enabled = 1;
@ -279,9 +277,6 @@ static void show_usage(void){
printf("a - establish HFP connection to PTS module\n");
// printf("A - release HFP connection to PTS module\n");
printf("z - establish HFP connection to speaker\n");
// printf("Z - release HFP connection to speaker\n");
printf("b - establish AUDIO connection\n");
printf("B - release AUDIO connection\n");
@ -344,11 +339,11 @@ static void show_usage(void){
printf("---\n");
}
#ifdef HAVE_STDIO
static int stdin_process(struct data_source *ds){
read(ds->fd, &cmd, 1);
switch (cmd){
case 'a':
memcpy(device_addr, pts_addr, 6);
log_info("USER:\'%c\'", cmd);
printf("Establish HFP service level connection to PTS module %s...\n", bd_addr_to_str(device_addr));
hfp_ag_establish_service_level_connection(device_addr);
@ -358,12 +353,6 @@ static int stdin_process(struct data_source *ds){
printf("Release HFP service level connection.\n");
hfp_ag_release_service_level_connection(device_addr);
break;
case 'z':
memcpy(device_addr, speaker_addr, 6);
log_info("USER:\'%c\'", cmd);
printf("Establish HFP service level connection to %s...\n", bd_addr_to_str(device_addr));
hfp_ag_establish_service_level_connection(device_addr);
break;
case 'Z':
log_info("USER:\'%c\'", cmd);
printf("Release HFP service level connection to %s...\n", bd_addr_to_str(device_addr));
@ -571,7 +560,7 @@ static int stdin_process(struct data_source *ds){
return 0;
}
#endif
static void packet_handler(uint8_t * event, uint16_t event_size){
@ -665,6 +654,8 @@ static hfp_phone_number_t subscriber_number = {
int btstack_main(int argc, const char * argv[]);
int btstack_main(int argc, const char * argv[]){
// HFP HS address is hardcoded, please change it
// init L2CAP
l2cap_init();
rfcomm_init();
@ -686,13 +677,10 @@ int btstack_main(int argc, const char * argv[]){
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
// pre-select pts
memcpy(device_addr, pts_addr, 6);
#ifdef HAVE_STDIO
btstack_stdin_setup(stdin_process);
#endif
// turn on!
hci_power_control(HCI_POWER_ON);
btstack_stdin_setup(stdin_process);
return 0;
}

@ -78,11 +78,7 @@ const uint32_t hfp_service_buffer[150/4]; // implicit alignment to 4-byte memo
const uint8_t rfcomm_channel_nr = 1;
const char hfp_hf_service_name[] = "BTstack HFP HF Test";
static bd_addr_t pts_addr = {0x00,0x15,0x83,0x5F,0x9D,0x46};
//static bd_addr_t pts_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static bd_addr_t phone_addr = {0xD8,0xBb,0x2C,0xDf,0xF1,0x08};
static bd_addr_t device_addr;
static bd_addr_t device_addr = {0xD8,0xBb,0x2C,0xDf,0xF1,0x08};
static uint16_t handle = -1;
static uint8_t codecs[] = {HFP_CODEC_CVSD, HFP_CODEC_MSBC};
static uint16_t indicators[1] = {0x01};
@ -97,8 +93,6 @@ static void show_usage(void){
printf("\n--- Bluetooth HFP Hands-Free (HF) unit Test Console ---\n");
printf("---\n");
printf("z - use iPhone as Audiogateway\n");
printf("a - establish SLC connection to device\n");
printf("A - release SLC connection to device\n");
@ -178,6 +172,7 @@ static void show_usage(void){
printf("---\n");
}
#ifdef HAVE_STDIO
static int stdin_process(struct data_source *ds){
read(ds->fd, &cmd, 1);
@ -420,11 +415,6 @@ static int stdin_process(struct data_source *ds){
printf("Private consulation with call 2\n");
hfp_hf_private_consultation_with_call(device_addr, 2);
break;
case 'z':
memcpy(device_addr, phone_addr, 6);
log_info("USER:\'%c\'", cmd);
printf("Use iPhone %s as Audiogateway.\n", bd_addr_to_str(device_addr));
break;
case '[':
log_info("USER:\'%c\'", cmd);
printf("Query Response and Hold status (RHH ?)\n");
@ -463,7 +453,7 @@ static int stdin_process(struct data_source *ds){
return 0;
}
#endif
static void packet_handler(uint8_t * event, uint16_t event_size){
if (event[0] == RFCOMM_EVENT_OPEN_CHANNEL_COMPLETE){
@ -527,6 +517,8 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
int btstack_main(int argc, const char * argv[]);
int btstack_main(int argc, const char * argv[]){
// HFP AG address is hardcoded, please change it
// init L2CAP
l2cap_init();
rfcomm_init();
@ -545,14 +537,10 @@ int btstack_main(int argc, const char * argv[]){
hfp_hf_create_sdp_record((uint8_t *)hfp_service_buffer, rfcomm_channel_nr, hfp_hf_service_name, 0);
sdp_register_service_internal(NULL, (uint8_t *)hfp_service_buffer);
// pre-select pts
memcpy(device_addr, pts_addr, 6);
#ifdef HAVE_STDIO
btstack_stdin_setup(stdin_process);
#endif
// turn on!
hci_power_control(HCI_POWER_ON);
btstack_stdin_setup(stdin_process);
// printf("Establishing HFP connection to %s...\n", bd_addr_to_str(phone_addr));
// hfp_hf_connect(phone_addr);
return 0;
}

@ -80,8 +80,8 @@ static const char hsp_ag_service_name[] = "Audio Gateway Test";
static uint16_t sco_handle = 0;
static char hs_cmd_buffer[100];
// static bd_addr_t current_addr = {0x04,0x0C,0xCE,0xE4,0x85,0xD3};
static bd_addr_t current_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static bd_addr_t device_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static int phase = 0;
@ -126,7 +126,7 @@ static void show_usage(void){
printf("\n--- Bluetooth HSP Audio Gateway Test Console %s ---\n", bd_addr_to_str(iut_address));
printf("---\n");
printf("c - Connect to %s\n", bd_addr_to_str(current_addr));
printf("c - Connect to %s\n", bd_addr_to_str(device_addr));
printf("C - Disconnect\n");
printf("a - establish audio connection\n");
printf("A - release audio connection\n");
@ -142,15 +142,15 @@ static void show_usage(void){
printf("---\n");
}
#ifdef HAVE_STDIO
static int stdin_process(struct data_source *ds){
char buffer;
read(ds->fd, &buffer, 1);
switch (buffer){
case 'c':
printf("Connect to %s\n", bd_addr_to_str(current_addr));
hsp_ag_connect(current_addr);
printf("Connect to %s\n", bd_addr_to_str(device_addr));
hsp_ag_connect(device_addr);
break;
case 'C':
printf("Disconnect.\n");
@ -199,6 +199,7 @@ static int stdin_process(struct data_source *ds){
}
return 0;
}
#endif
static void try_send_sco(void){
return;
@ -350,7 +351,9 @@ int btstack_main(int argc, const char * argv[]){
hsp_ag_register_packet_handler(packet_handler);
#ifdef HAVE_STDIO
btstack_stdin_setup(stdin_process);
#endif
gap_set_local_name("BTstack HSP AG");
hci_discoverable_control(1);

@ -80,8 +80,7 @@ static const char hsp_hs_service_name[] = "Headset Test";
static uint16_t sco_handle = 0;
static char hs_cmd_buffer[100];
// static bd_addr_t current_addr = {0x04,0x0C,0xCE,0xE4,0x85,0xD3};
static bd_addr_t current_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static bd_addr_t device_addr = {0x00,0x1b,0xDC,0x07,0x32,0xEF};
static int phase = 0;
@ -117,6 +116,7 @@ static const uint8_t sine[] = {
*
*/
static void show_usage(void){
uint8_t iut_address_type;
bd_addr_t iut_address;
@ -124,7 +124,7 @@ static void show_usage(void){
printf("\n--- Bluetooth HSP Headset Test Console %s ---\n", bd_addr_to_str(iut_address));
printf("---\n");
printf("c - Connect to %s\n", bd_addr_to_str(current_addr));
printf("c - Connect to %s\n", bd_addr_to_str(device_addr));
printf("C - Disconnect\n");
printf("a - establish audio connection\n");
printf("A - release audio connection\n");
@ -140,15 +140,15 @@ static void show_usage(void){
printf("---\n");
}
#ifdef HAVE_STDIO
static int stdin_process(struct data_source *ds){
char buffer;
read(ds->fd, &buffer, 1);
switch (buffer){
case 'c':
printf("Connect to %s\n", bd_addr_to_str(current_addr));
hsp_hs_connect(current_addr);
printf("Connect to %s\n", bd_addr_to_str(device_addr));
hsp_hs_connect(device_addr);
break;
case 'C':
printf("Disconnect.\n");
@ -197,6 +197,7 @@ static int stdin_process(struct data_source *ds){
}
return 0;
}
#endif
static void try_send_sco(void){
if (!sco_handle) return;
@ -239,7 +240,6 @@ static void packet_handler(uint8_t * event, uint16_t event_size){
switch (event[0]) {
case BTSTACK_EVENT_STATE:
if (event[2] != HCI_STATE_WORKING) break;
printf("HCI_STATE_WORKING\n");
show_usage();
break;
case HCI_EVENT_NUMBER_OF_COMPLETED_PACKETS:
@ -348,7 +348,9 @@ int btstack_main(int argc, const char * argv[]){
hsp_hs_init(rfcomm_channel_nr);
hsp_hs_register_packet_handler(packet_handler);
#ifdef HAVE_STDIO
btstack_stdin_setup(stdin_process);
#endif
gap_set_local_name("BTstack HSP HS");
hci_discoverable_control(1);