hsp_ag.c (a874746709fd7a8c0715bc158b817e9b8a601294) hsp_ag.c (5611a760af48d1ce1beea59c7908be73bd2393f1)
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 83 unchanged lines hidden (view full) ---

92static uint8_t ag_send_ok = 0;
93static uint8_t ag_send_error = 0;
94static uint8_t ag_num_button_press_received = 0;
95static uint8_t ag_support_custom_commands = 0;
96
97typedef enum {
98 HSP_IDLE,
99 HSP_SDP_QUERY_RFCOMM_CHANNEL,
1/*
2 * Copyright (C) 2014 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 83 unchanged lines hidden (view full) ---

92static uint8_t ag_send_ok = 0;
93static uint8_t ag_send_error = 0;
94static uint8_t ag_num_button_press_received = 0;
95static uint8_t ag_support_custom_commands = 0;
96
97typedef enum {
98 HSP_IDLE,
99 HSP_SDP_QUERY_RFCOMM_CHANNEL,
100 HSP_W4_SDP_QUERY_COMPLETE,
100 HSP_W4_SDP_EVENT_QUERY_COMPLETE,
101 HSP_W4_RFCOMM_CONNECTED,
102 HSP_W4_RING_ANSWER,
103 HSP_W4_USER_ACTION,
104 HSP_W2_CONNECT_SCO,
105 HSP_W4_SCO_CONNECTED,
106 HSP_ACTIVE,
107 HSP_W2_DISCONNECT_SCO,
108 HSP_W4_SCO_DISCONNECTED,

--- 253 unchanged lines hidden (view full) ---

362 if (err) {
363 ag_send_error = 1;
364 }
365 return;
366 }
367
368 switch (hsp_state){
369 case HSP_SDP_QUERY_RFCOMM_CHANNEL:
101 HSP_W4_RFCOMM_CONNECTED,
102 HSP_W4_RING_ANSWER,
103 HSP_W4_USER_ACTION,
104 HSP_W2_CONNECT_SCO,
105 HSP_W4_SCO_CONNECTED,
106 HSP_ACTIVE,
107 HSP_W2_DISCONNECT_SCO,
108 HSP_W4_SCO_DISCONNECTED,

--- 253 unchanged lines hidden (view full) ---

362 if (err) {
363 ag_send_error = 1;
364 }
365 return;
366 }
367
368 switch (hsp_state){
369 case HSP_SDP_QUERY_RFCOMM_CHANNEL:
370 hsp_state = HSP_W4_SDP_QUERY_COMPLETE;
370 hsp_state = HSP_W4_SDP_EVENT_QUERY_COMPLETE;
371 printf("Start SDP query %s, 0x%02x\n", bd_addr_to_str(remote), SDP_HSP);
372 sdp_query_rfcomm_channel_and_name_for_uuid(remote, SDP_HSP);
373 break;
374
375 case HSP_W4_RING_ANSWER:
376 if (ag_ring){
377 ag_ring = 0;
378 err = hsp_ag_send_str_over_rfcomm(rfcomm_cid, HSP_AG_RING);

--- 243 unchanged lines hidden (view full) ---

622 default:
623 break;
624 }
625 hsp_run();
626}
627
628static void handle_query_rfcomm_event(uint8_t packet_type, uint8_t *packet, uint16_t size, void * context){
629 switch (event->type){
371 printf("Start SDP query %s, 0x%02x\n", bd_addr_to_str(remote), SDP_HSP);
372 sdp_query_rfcomm_channel_and_name_for_uuid(remote, SDP_HSP);
373 break;
374
375 case HSP_W4_RING_ANSWER:
376 if (ag_ring){
377 ag_ring = 0;
378 err = hsp_ag_send_str_over_rfcomm(rfcomm_cid, HSP_AG_RING);

--- 243 unchanged lines hidden (view full) ---

622 default:
623 break;
624 }
625 hsp_run();
626}
627
628static void handle_query_rfcomm_event(uint8_t packet_type, uint8_t *packet, uint16_t size, void * context){
629 switch (event->type){
630 case SDP_QUERY_RFCOMM_SERVICE:
630 case SDP_EVENT_QUERY_RFCOMM_SERVICE:
631 channel_nr = sdp_query_rfcomm_service_event_get_rfcomm_channel(packet);
632 printf("** Service name: '%s', RFCOMM port %u\n", sdp_query_rfcomm_service_event_get_name(packet), channel_nr);
633 break;
631 channel_nr = sdp_query_rfcomm_service_event_get_rfcomm_channel(packet);
632 printf("** Service name: '%s', RFCOMM port %u\n", sdp_query_rfcomm_service_event_get_name(packet), channel_nr);
633 break;
634 case SDP_QUERY_COMPLETE:
634 case SDP_EVENT_QUERY_COMPLETE:
635 if (channel_nr > 0){
636 hsp_state = HSP_W4_RFCOMM_CONNECTED;
637 printf("RFCOMM create channel. state %d\n", HSP_W4_RFCOMM_CONNECTED);
638 rfcomm_create_channel(remote, channel_nr, NULL);
639 break;
640 }
641 hsp_ag_reset_state();
642 printf("Service not found, status %u.\n", sdp_query_complete_event_get_status(packet));

--- 12 unchanged lines hidden ---
635 if (channel_nr > 0){
636 hsp_state = HSP_W4_RFCOMM_CONNECTED;
637 printf("RFCOMM create channel. state %d\n", HSP_W4_RFCOMM_CONNECTED);
638 rfcomm_create_channel(remote, channel_nr, NULL);
639 break;
640 }
641 hsp_ag_reset_state();
642 printf("Service not found, status %u.\n", sdp_query_complete_event_get_status(packet));

--- 12 unchanged lines hidden ---