mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-24 04:43:36 +00:00
sdp_parser: replace sdp_query_complete_event_t with regular hci event
This commit is contained in:
parent
7bd8e93b3a
commit
fd2eb611c5
@ -81,17 +81,17 @@
|
||||
#include <linux/if_tun.h>
|
||||
#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;
|
||||
}
|
||||
|
@ -51,17 +51,17 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#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 */
|
||||
|
@ -50,18 +50,17 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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){
|
||||
|
@ -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");
|
||||
|
@ -12,14 +12,14 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.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_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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -12,14 +12,14 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.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_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;
|
||||
}
|
||||
}
|
||||
|
@ -12,14 +12,14 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.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_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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user