diff --git a/example/embedded/panu_demo.c b/example/embedded/panu_demo.c index 31bf46d25..5398ead08 100644 --- a/example/embedded/panu_demo.c +++ b/example/embedded/panu_demo.c @@ -81,17 +81,17 @@ #include #endif -#include "hci_cmd.h" -#include "btstack_run_loop.h" -#include "classic/sdp_util.h" - -#include "hci.h" #include "btstack_memory.h" +#include "btstack_event.h" +#include "btstack_run_loop.h" +#include "classic/sdp_client.h" +#include "classic/sdp_parser.h" +#include "classic/sdp_query_util.h" +#include "classic/sdp_util.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" -#include "classic/sdp_client.h" -#include "classic/sdp_query_util.h" #include "pan.h" static int record_id = -1; @@ -319,8 +319,8 @@ static char * get_string_from_data_element(uint8_t * element){ */ static void handle_sdp_client_query_result(sdp_query_event_t *event) { + const uint8_t * complete_event; sdp_query_attribute_value_event_t *value_event; - sdp_query_complete_event_t *complete_event; des_iterator_t des_list_it; des_iterator_t prot_it; char *str; @@ -414,7 +414,7 @@ static void handle_sdp_client_query_result(sdp_query_event_t *event) case SDP_QUERY_COMPLETE: complete_event = (sdp_query_complete_event_t*) event; - fprintf(stderr, "General query done with status %d.\n", complete_event->status); + fprintf(stderr, "General query done with status %d.\n", sdp_query_complete_event_get_status(complete_event)); break; } diff --git a/example/embedded/sdp_bnep_query.c b/example/embedded/sdp_bnep_query.c index 7d04d398d..df094647c 100644 --- a/example/embedded/sdp_bnep_query.c +++ b/example/embedded/sdp_bnep_query.c @@ -51,17 +51,17 @@ #include #include -#include "hci_cmd.h" -#include "btstack_run_loop.h" -#include "classic/sdp_util.h" - -#include "hci.h" +#include "btstack_event.h" #include "btstack_memory.h" +#include "btstack_run_loop.h" +#include "classic/sdp_client.h" +#include "classic/sdp_parser.h" +#include "classic/sdp_query_util.h" +#include "classic/sdp_util.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" -#include "classic/sdp_client.h" -#include "classic/sdp_query_util.h" #include "pan.h" int record_id = -1; @@ -165,7 +165,7 @@ static char * get_string_from_data_element(uint8_t * element){ static void handle_sdp_client_query_result(sdp_query_event_t * event){ /* LISTING_PAUSE */ sdp_query_attribute_value_event_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; des_iterator_t des_list_it; des_iterator_t prot_it; char *str; @@ -263,8 +263,8 @@ static void handle_sdp_client_query_result(sdp_query_event_t * event){ } break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; - printf("General query done with status %d.\n\n", ce->status); + ce = (const uint8_t *) event; + printf("General query done with status %d.\n\n", sdp_query_complete_event_get_status(ce)); break; } /* LISTING_RESUME */ diff --git a/example/embedded/sdp_general_query.c b/example/embedded/sdp_general_query.c index 1b06ed5bf..d5fb9db5c 100644 --- a/example/embedded/sdp_general_query.c +++ b/example/embedded/sdp_general_query.c @@ -50,18 +50,17 @@ #include #include -#include "classic/sdp_parser.h" -#include "classic/sdp_client.h" -#include "classic/sdp_query_util.h" - -#include "hci_cmd.h" -#include "btstack_run_loop.h" - -#include "hci.h" +#include "btstack_event.h" #include "btstack_memory.h" +#include "btstack_run_loop.h" +#include "classic/sdp_client.h" +#include "classic/sdp_parser.h" +#include "classic/sdp_parser.h" +#include "classic/sdp_query_util.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" int record_id = -1; int attribute_id = -1; @@ -147,7 +146,7 @@ static void assertBuffer(int size){ /* LISTING_START(HandleSDPQUeryResult): Handling query result chunks. */ static void handle_sdp_client_query_result(sdp_query_event_t * event){ sdp_query_attribute_value_event_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_ATTRIBUTE_VALUE: @@ -168,8 +167,8 @@ static void handle_sdp_client_query_result(sdp_query_event_t * event){ } break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; - printf("General query done with status %d.\n\n", ce->status); + ce = (const uint8_t *) event; + printf("General query done with status %d.\n\n", sdp_query_complete_event_get_status(ce)); exit(0); break; } diff --git a/platform/daemon/daemon.c b/platform/daemon/daemon.c index 4f67d07a9..759e0bb75 100644 --- a/platform/daemon/daemon.c +++ b/platform/daemon/daemon.c @@ -1577,6 +1577,7 @@ static void rfcomm_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t static void handle_sdp_rfcomm_service_result(sdp_query_event_t * rfcomm_event, void * context){ switch (rfcomm_event->type){ case SDP_QUERY_RFCOMM_SERVICE: { + case SDP_QUERY_COMPLETE: { // already an HCI Event const uint8_t * event = (const uint8_t *) event; int event_len = 2 + event[1]; @@ -1584,13 +1585,8 @@ static void handle_sdp_rfcomm_service_result(sdp_query_event_t * rfcomm_event, v socket_connection_send_packet(context, HCI_EVENT_PACKET, 0, event, event_len); break; } - case SDP_QUERY_COMPLETE: { - sdp_query_complete_event_t * complete_event = (sdp_query_complete_event_t*) rfcomm_event; - uint8_t event[] = { rfcomm_event->type, 1, complete_event->status}; - hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event)); - socket_connection_send_packet(context, HCI_EVENT_PACKET, 0, event, sizeof(event)); + default: break; - } } } @@ -1603,7 +1599,8 @@ static void sdp_client_assert_buffer(int size){ // define new packet type SDP_CLIENT_PACKET static void handle_sdp_client_query_result(sdp_query_event_t * event){ sdp_query_attribute_value_event_t * ve; - sdp_query_complete_event_t * complete_event; + const uint8_t * complete_event; + int event_len; switch (event->type){ case SDP_QUERY_ATTRIBUTE_VALUE: @@ -1629,10 +1626,10 @@ static void handle_sdp_client_query_result(sdp_query_event_t * event){ break; case SDP_QUERY_COMPLETE: - complete_event = (sdp_query_complete_event_t*) event; - uint8_t event[] = { SDP_QUERY_COMPLETE, 1, complete_event->status}; - hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event)); - socket_connection_send_packet(sdp_client_query_connection, HCI_EVENT_PACKET, 0, event, sizeof(event)); + complete_event = (const uint8_t*) event; + event_len = complete_event[1] + 2; + hci_dump_packet(HCI_EVENT_PACKET, 0, complete_event, event_len); + socket_connection_send_packet(sdp_client_query_connection, HCI_EVENT_PACKET, 0, complete_event, event_len); break; } } diff --git a/src/classic/hfp.c b/src/classic/hfp.c index 231153a15..4d93a74e7 100644 --- a/src/classic/hfp.c +++ b/src/classic/hfp.c @@ -416,7 +416,7 @@ void hfp_create_sdp_record(uint8_t * service, uint32_t service_record_handle, ui static hfp_connection_t * connection_doing_sdp_query = NULL; static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ const uint8_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; hfp_connection_t * connection = connection_doing_sdp_query; if ( connection->state != HFP_W4_SDP_QUERY_COMPLETE) return; @@ -432,7 +432,7 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) break; case SDP_QUERY_COMPLETE: connection_doing_sdp_query = NULL; - ce = (sdp_query_complete_event_t*) event; + ce = (const uint8_t*) event; if (connection->rfcomm_channel_nr > 0){ connection->state = HFP_W4_RFCOMM_CONNECTED; @@ -440,7 +440,7 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) rfcomm_create_channel(connection->remote_addr, connection->rfcomm_channel_nr, NULL); break; } - log_info("rfcomm service not found, status %u.", ce->status); + log_info("rfcomm service not found, status %u.", sdp_query_complete_event_get_status(ce)); break; default: break; diff --git a/src/classic/hsp_ag.c b/src/classic/hsp_ag.c index 5d1007868..82d47f3f2 100644 --- a/src/classic/hsp_ag.c +++ b/src/classic/hsp_ag.c @@ -627,7 +627,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ const uint8_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_RFCOMM_SERVICE: @@ -636,7 +636,7 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) printf("** Service name: '%s', RFCOMM port %u\n", sdp_query_rfcomm_service_event_get_name(ve), channel_nr); break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; + ce = (const uint8_t*) event; if (channel_nr > 0){ hsp_state = HSP_W4_RFCOMM_CONNECTED; @@ -645,9 +645,9 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) break; } hsp_ag_reset_state(); - printf("Service not found, status %u.\n", ce->status); + printf("Service not found, status %u.\n", sdp_query_complete_event_get_status(ce)); if (ce->status){ - emit_event(HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE, ce->status); + emit_event(HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE, sdp_query_complete_event_get_status(ce)); } else { emit_event(HSP_SUBEVENT_AUDIO_CONNECTION_COMPLETE, SDP_SERVICE_NOT_FOUND); } diff --git a/src/classic/hsp_hs.c b/src/classic/hsp_hs.c index 554b549a1..d78e75b4e 100644 --- a/src/classic/hsp_hs.c +++ b/src/classic/hsp_hs.c @@ -575,7 +575,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ const uint8_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_RFCOMM_SERVICE: @@ -584,7 +584,7 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) printf("** Service name: '%s', RFCOMM port %u\n", sdp_query_rfcomm_service_event_get_name(ve), channel_nr); break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; + ce = (const uint8_t*) event; if (channel_nr > 0){ hsp_state = HSP_W4_RFCOMM_CONNECTED; @@ -593,7 +593,7 @@ static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context) break; } hsp_hs_reset_state(); - printf("Service not found, status %u.\n", ce->status); + printf("Service not found, status %u.\n", sdp_query_complete_event_get_status(ce)); exit(0); break; } diff --git a/src/classic/sdp_parser.c b/src/classic/sdp_parser.c index 022eb774c..6d093a56f 100644 --- a/src/classic/sdp_parser.c +++ b/src/classic/sdp_parser.c @@ -272,9 +272,9 @@ void sdp_parser_handle_service_search(uint8_t * data, uint16_t total_count, uint #endif void sdp_parser_handle_done(uint8_t status){ - sdp_query_complete_event_t complete_event = { - SDP_QUERY_COMPLETE, - status - }; - (*sdp_query_callback)((sdp_query_event_t*)&complete_event); + uint8_t event[3]; + event[0] = SDP_QUERY_COMPLETE; + event[1] = 1; + event[2] = status; + (*sdp_query_callback)((sdp_query_event_t*)&event); } diff --git a/src/classic/sdp_parser.h b/src/classic/sdp_parser.h index afa48855c..e25b43030 100644 --- a/src/classic/sdp_parser.h +++ b/src/classic/sdp_parser.h @@ -77,13 +77,6 @@ typedef struct sdp_query_event { void * dummy; // force sdp_query_event struct to be word aligned -> avoid -Wcast-align warning } sdp_query_event_t; -// SDP Query event to indicate that query/parser is complete. -typedef struct sdp_query_complete_event { - uint8_t type; - uint8_t status; // 0 == OK - void * dummy; // force sdp_query_complete_event struct to be word aligned -> avoid -Wcast-align warning -} sdp_query_complete_event_t; - // SDP Parser event to deliver an attribute value byte by byte typedef struct sdp_query_attribute_value_event { uint8_t type; diff --git a/test/hfp/mock.c b/test/hfp/mock.c index 968bcedce..b17438d3a 100644 --- a/test/hfp/mock.c +++ b/test/hfp/mock.c @@ -207,11 +207,11 @@ void sdp_query_rfcomm_register_callback(void(*sdp_app_callback)(sdp_query_event_ } static void sdp_query_complete_response(uint8_t status){ - sdp_query_complete_event_t complete_event = { - SDP_QUERY_COMPLETE, - status - }; - (*registered_sdp_app_callback)((sdp_query_event_t*)&complete_event, registered_sdp_app_context); + uint8_t event[3]; + event[0] = SDP_QUERY_COMPLETE; + event[1] = 1; + event[2] = status; + (*registered_sdp_app_callback)((sdp_query_event_t*)&event, registered_sdp_app_context); } static void sdp_query_rfcomm_service_response(uint8_t status){ diff --git a/test/pts/hfp_test.c b/test/pts/hfp_test.c index 0888ea8e0..3a51d3788 100644 --- a/test/pts/hfp_test.c +++ b/test/pts/hfp_test.c @@ -141,7 +141,7 @@ static void packet_handler(void * connection, uint8_t packet_type, uint16_t chan void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ const uint8_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_RFCOMM_SERVICE: @@ -150,7 +150,7 @@ void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ printf("** Service name: '%s', RFCOMM port %u\n", sdp_query_rfcomm_service_event_get_rfcomm_channel(ve), channel_nr); break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; + ce = (const uint8_t*) event; if (channel_nr > 0) { printf("RFCOMM create channel.\n"); diff --git a/test/sdp_client/general_sdp_query.c b/test/sdp_client/general_sdp_query.c index 65c004da2..7026b0a3b 100644 --- a/test/sdp_client/general_sdp_query.c +++ b/test/sdp_client/general_sdp_query.c @@ -12,14 +12,14 @@ #include #include -#include "hci_cmd.h" -#include "btstack_run_loop.h" - -#include "hci.h" +#include "btstack_event.h" #include "btstack_memory.h" +#include "btstack_run_loop.h" +#include "classic/sdp_parser.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" #include "CppUTest/TestHarness.h" #include "CppUTest/CommandLineTestRunner.h" @@ -145,7 +145,7 @@ static void test_attribute_value_event(sdp_query_attribute_value_event_t* event) static void handle_sdp_parser_event(sdp_query_event_t * event){ sdp_query_attribute_value_event_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_ATTRIBUTE_VALUE: @@ -163,8 +163,8 @@ static void handle_sdp_parser_event(sdp_query_event_t * event){ break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; - printf("General query done with status %d.\n", ce->status); + ce = (const uint8_t *) event; + printf("General query done with status %d.\n", sdp_query_complete_event_get_status(ce)); break; } } diff --git a/test/sdp_client/sdp_rfcomm_query.c b/test/sdp_client/sdp_rfcomm_query.c index fa6c0d1d3..a4ac3db94 100644 --- a/test/sdp_client/sdp_rfcomm_query.c +++ b/test/sdp_client/sdp_rfcomm_query.c @@ -91,7 +91,7 @@ void sdp_query_rfcomm_init(); void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ - sdp_query_complete_event_t * ce; + const uint8_t * ce; uint8_t * ve = (uint8_t *) event; printf("handle_query_rfcomm_event\n"); @@ -106,7 +106,7 @@ void handle_query_rfcomm_event(sdp_query_event_t * event, void * context){ service_index++; break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; + ce = (const uint8_t*) event; // printf("CALLBACK: Client query response done. \n"); break; } diff --git a/test/sdp_client/service_attribute_search_query.c b/test/sdp_client/service_attribute_search_query.c index fd408a0ff..a6f41b6d3 100644 --- a/test/sdp_client/service_attribute_search_query.c +++ b/test/sdp_client/service_attribute_search_query.c @@ -12,14 +12,14 @@ #include #include -#include "hci_cmd.h" -#include "btstack_run_loop.h" - -#include "hci.h" +#include "btstack_event.h" #include "btstack_memory.h" +#include "btstack_run_loop.h" +#include "classic/sdp_parser.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" #include "CppUTest/TestHarness.h" #include "CppUTest/CommandLineTestRunner.h" @@ -90,7 +90,7 @@ static void test_attribute_value_event(sdp_query_attribute_value_event_t* event) static void handle_sdp_parser_event(sdp_query_event_t * event){ sdp_query_attribute_value_event_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; switch (event->type){ case SDP_QUERY_ATTRIBUTE_VALUE: @@ -108,8 +108,8 @@ static void handle_sdp_parser_event(sdp_query_event_t * event){ break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; - printf("General query done with status %d.\n", ce->status); + ce = (const uint8_t*) event; + printf("General query done with status %d.\n", sdp_query_complete_event_get_status(ce)); break; } } diff --git a/test/sdp_client/service_search_query.c b/test/sdp_client/service_search_query.c index 06baf8199..19be63973 100644 --- a/test/sdp_client/service_search_query.c +++ b/test/sdp_client/service_search_query.c @@ -12,14 +12,14 @@ #include #include -#include "hci_cmd.h" -#include "btstack_run_loop.h" - -#include "hci.h" +#include "btstack_event.h" #include "btstack_memory.h" +#include "btstack_run_loop.h" +#include "classic/sdp_parser.h" +#include "hci.h" +#include "hci_cmd.h" #include "hci_dump.h" #include "l2cap.h" -#include "classic/sdp_parser.h" #include "CppUTest/TestHarness.h" #include "CppUTest/CommandLineTestRunner.h" @@ -42,7 +42,7 @@ static uint8_t sdp_test_record_list[] = { static void handle_sdp_parser_event(sdp_query_event_t * event){ sdp_query_service_record_handle_event_t * ve; - sdp_query_complete_event_t * ce; + const uint8_t * ce; static uint32_t record_handle = sdp_test_record_list[0]; @@ -56,8 +56,8 @@ static void handle_sdp_parser_event(sdp_query_event_t * event){ break; case SDP_QUERY_COMPLETE: - ce = (sdp_query_complete_event_t*) event; - printf("General query done with status %d.\n", ce->status); + ce = (const uint8_t *) event; + printf("General query done with status %d.\n", sdp_query_complete_event_get_status(ce)); break; } }