mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-21 23:42:33 +00:00
sdp_query_util: inline into sdp_util and sdp_client
This commit is contained in:
parent
d13e2c60a2
commit
023f27646b
@ -26,7 +26,6 @@ apis = [
|
|||||||
["src/classic/rfcomm.h", "RFCOMM", "rfcomm"],
|
["src/classic/rfcomm.h", "RFCOMM", "rfcomm"],
|
||||||
["src/classic/sdp_client.h", "SDP Client", "sdpClient"],
|
["src/classic/sdp_client.h", "SDP Client", "sdpClient"],
|
||||||
["src/classic/sdp_query_rfcomm.h", "SDP RFCOMM Query", "sdpQueries"],
|
["src/classic/sdp_query_rfcomm.h", "SDP RFCOMM Query", "sdpQueries"],
|
||||||
["src/classic/sdp_query_util.h","SDP Query Utils","sdpQueryUtil"],
|
|
||||||
["src/classic/sdp_server.h", "SDP Server", "sdpSrv"],
|
["src/classic/sdp_server.h", "SDP Server", "sdpSrv"],
|
||||||
["src/classic/sdp_util.h","SDP Utils", "sdpUtil"],
|
["src/classic/sdp_util.h","SDP Utils", "sdpUtil"],
|
||||||
|
|
||||||
|
@ -29,8 +29,6 @@ COMMON += \
|
|||||||
|
|
||||||
SDP_CLIENT += \
|
SDP_CLIENT += \
|
||||||
sdp_client.o \
|
sdp_client.o \
|
||||||
sdp_parser.o \
|
|
||||||
sdp_query_util.o \
|
|
||||||
sdp_query_rfcomm.o \
|
sdp_query_rfcomm.o \
|
||||||
|
|
||||||
ATT += \
|
ATT += \
|
||||||
|
@ -85,7 +85,6 @@
|
|||||||
#include "btstack_event.h"
|
#include "btstack_event.h"
|
||||||
#include "btstack_run_loop.h"
|
#include "btstack_run_loop.h"
|
||||||
#include "classic/sdp_client.h"
|
#include "classic/sdp_client.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
#include "classic/sdp_util.h"
|
#include "classic/sdp_util.h"
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
@ -445,7 +444,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
|||||||
case BTSTACK_EVENT_STATE:
|
case BTSTACK_EVENT_STATE:
|
||||||
if (packet[2] == HCI_STATE_WORKING) {
|
if (packet[2] == HCI_STATE_WORKING) {
|
||||||
printf("Start SDP BNEP query.\n");
|
printf("Start SDP BNEP query.\n");
|
||||||
sdp_general_query_for_uuid(remote, SDP_BNEPProtocol);
|
sdp_client_query_uuid16(remote, SDP_BNEPProtocol);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -55,7 +55,6 @@
|
|||||||
#include "btstack_memory.h"
|
#include "btstack_memory.h"
|
||||||
#include "btstack_run_loop.h"
|
#include "btstack_run_loop.h"
|
||||||
#include "classic/sdp_client.h"
|
#include "classic/sdp_client.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
#include "classic/sdp_util.h"
|
#include "classic/sdp_util.h"
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
@ -105,7 +104,7 @@ static void sdp_client_init(void){
|
|||||||
|
|
||||||
/* @section SDP Client Query
|
/* @section SDP Client Query
|
||||||
* To trigger an SDP query to get the a list of service records on a remote device,
|
* To trigger an SDP query to get the a list of service records on a remote device,
|
||||||
* you need to call sdp_general_query_for_uuid() with the remote address and the
|
* you need to call sdp_client_query_uuid16() with the remote address and the
|
||||||
* BNEP protocol UUID, as shown in Listing SDPQueryUUID.
|
* BNEP protocol UUID, as shown in Listing SDPQueryUUID.
|
||||||
* In this example we again used fixed address of the remote device. Please update
|
* In this example we again used fixed address of the remote device. Please update
|
||||||
* for your environment.
|
* for your environment.
|
||||||
@ -121,7 +120,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
|||||||
// BTstack activated, get started
|
// BTstack activated, get started
|
||||||
if (packet[2] == HCI_STATE_WORKING){
|
if (packet[2] == HCI_STATE_WORKING){
|
||||||
printf("Start SDP BNEP query.\n");
|
printf("Start SDP BNEP query.\n");
|
||||||
sdp_general_query_for_uuid(&handle_sdp_client_query_result, remote, SDP_BNEPProtocol);
|
sdp_client_query_uuid16(&handle_sdp_client_query_result, remote, SDP_BNEPProtocol);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -54,7 +54,6 @@
|
|||||||
#include "btstack_memory.h"
|
#include "btstack_memory.h"
|
||||||
#include "btstack_run_loop.h"
|
#include "btstack_run_loop.h"
|
||||||
#include "classic/sdp_client.h"
|
#include "classic/sdp_client.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
#include "classic/sdp_util.h"
|
#include "classic/sdp_util.h"
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
@ -95,7 +94,7 @@ static void sdp_client_init(void){
|
|||||||
/* @section SDP Client Query
|
/* @section SDP Client Query
|
||||||
*
|
*
|
||||||
* @text To trigger an SDP query to get the a list of service records on a remote device,
|
* @text To trigger an SDP query to get the a list of service records on a remote device,
|
||||||
* you need to call sdp_general_query_for_uuid() with the remote address and the
|
* you need to call sdp_client_query_uuid16() with the remote address and the
|
||||||
* UUID of the public browse group, as shown in Listing SDPQueryUUID.
|
* UUID of the public browse group, as shown in Listing SDPQueryUUID.
|
||||||
* In this example we used fixed address of the remote device shown in Listing Remote.
|
* In this example we used fixed address of the remote device shown in Listing Remote.
|
||||||
* Please update it with the address of a device in your vicinity, e.g., one reported
|
* Please update it with the address of a device in your vicinity, e.g., one reported
|
||||||
@ -116,7 +115,7 @@ static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *pack
|
|||||||
switch (event) {
|
switch (event) {
|
||||||
case BTSTACK_EVENT_STATE:
|
case BTSTACK_EVENT_STATE:
|
||||||
if (packet[2] == HCI_STATE_WORKING){
|
if (packet[2] == HCI_STATE_WORKING){
|
||||||
sdp_general_query_for_uuid(&handle_sdp_client_query_result, remote, SDP_PublicBrowseGroup);
|
sdp_client_query_uuid16(&handle_sdp_client_query_result, remote, SDP_PublicBrowseGroup);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -69,7 +69,6 @@
|
|||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
#include "classic/sdp_client.h"
|
#include "classic/sdp_client.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
#include "hci_dump.h"
|
#include "hci_dump.h"
|
||||||
|
@ -51,7 +51,6 @@ BTdaemon_SOURCES = \
|
|||||||
sdp_server.c \
|
sdp_server.c \
|
||||||
sdp_client.c \
|
sdp_client.c \
|
||||||
sdp_query_rfcomm.c \
|
sdp_query_rfcomm.c \
|
||||||
sdp_query_util.c \
|
|
||||||
att_dispatch.c \
|
att_dispatch.c \
|
||||||
gatt_client.c \
|
gatt_client.c \
|
||||||
att_db.c \
|
att_db.c \
|
||||||
|
@ -65,8 +65,6 @@ SPP = \
|
|||||||
|
|
||||||
SDP_CLIENT += \
|
SDP_CLIENT += \
|
||||||
sdp_client.o \
|
sdp_client.o \
|
||||||
sdp_parser.o \
|
|
||||||
sdp_query_util.o \
|
|
||||||
sdp_query_rfcomm.o \
|
sdp_query_rfcomm.o \
|
||||||
|
|
||||||
BLE = \
|
BLE = \
|
||||||
|
@ -51,7 +51,6 @@ BTdaemon_FILES = \
|
|||||||
rfcomm_service_db_cocoa.m \
|
rfcomm_service_db_cocoa.m \
|
||||||
sdp_client.c \
|
sdp_client.c \
|
||||||
sdp_query_rfcomm.c \
|
sdp_query_rfcomm.c \
|
||||||
sdp_query_util.c \
|
|
||||||
|
|
||||||
BTdaemon_CFLAGS = \
|
BTdaemon_CFLAGS = \
|
||||||
-I$(BTSTACK_ROOT)/src \
|
-I$(BTSTACK_ROOT)/src \
|
||||||
|
@ -65,8 +65,6 @@ SPP = \
|
|||||||
|
|
||||||
SDP_CLIENT += \
|
SDP_CLIENT += \
|
||||||
sdp_client.o \
|
sdp_client.o \
|
||||||
sdp_parser.o \
|
|
||||||
sdp_query_util.o \
|
|
||||||
sdp_query_rfcomm.o \
|
sdp_query_rfcomm.o \
|
||||||
|
|
||||||
BLE = \
|
BLE = \
|
||||||
|
@ -67,8 +67,6 @@ SPP = \
|
|||||||
|
|
||||||
SDP_CLIENT += \
|
SDP_CLIENT += \
|
||||||
sdp_client.o \
|
sdp_client.o \
|
||||||
sdp_parser.o \
|
|
||||||
sdp_query_util.o \
|
|
||||||
sdp_query_rfcomm.o \
|
sdp_query_rfcomm.o \
|
||||||
|
|
||||||
BLE = \
|
BLE = \
|
||||||
|
@ -51,9 +51,7 @@ BTdaemon_OBJS = $(libBTstack_OBJS) \
|
|||||||
rfcomm.o \
|
rfcomm.o \
|
||||||
sdp.o \
|
sdp.o \
|
||||||
sdp_client.o \
|
sdp_client.o \
|
||||||
sdp_parser.o \
|
|
||||||
sdp_query_rfcomm.o \
|
sdp_query_rfcomm.o \
|
||||||
sdp_query_util.o \
|
|
||||||
daemon.o \
|
daemon.o \
|
||||||
hci_transport_h4_mtk.o \
|
hci_transport_h4_mtk.o \
|
||||||
|
|
||||||
|
@ -45,17 +45,17 @@ OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
|
|||||||
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
|
DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
|
||||||
|
|
||||||
# Source Files Quoted if spaced
|
# Source Files Quoted if spaced
|
||||||
SOURCEFILES_QUOTED_IF_SPACED=../src/system_config/bk-audio-dk/system_init.c ../src/system_config/bk-audio-dk/system_tasks.c ../src/btstack_port.c ../src/app_debug.c ../src/app.c ../src/main.c ../../../src/bnep.c ../../../src/btstack_memory.c ../../../src/hci.c ../../../src/hci_cmd.c ../../../src/hci_dump.c ../../../src/hci_transport_h4_embedded.c ../../../src/l2cap.c ../../../src/l2cap_signaling.c ../../../src/linked_list.c ../../../src/btstack_memory_pool.c ../../../src/pan.c ../../../src/remote_device_db_memory.c ../../../src/rfcomm.c ../../../src/btstack_run_loop.c ../../../src/btstack_run_loop_embedded.c ../../../src/sdp_server.c ../../../src/sdp_client.c ../../../src/sdp_query_rfcomm.c ../../../src/sdp_query_util.c ../../../src/sdp_util.c ../../../src/btstack_util.c ../../../../driver/tmr/src/dynamic/drv_tmr.c ../../../../system/clk/src/sys_clk.c ../../../../system/clk/src/sys_clk_pic32mx.c ../../../../system/devcon/src/sys_devcon.c ../../../../system/devcon/src/sys_devcon_pic32mx.c ../../../../system/int/src/sys_int_pic32.c ../../../../system/ports/src/sys_ports.c ../../../chipset/csr/btstack_chipset_csr.c ../../../ble/ad_parser.c ../../../ble/att_db.c ../../../ble/att_dispatch.c ../../../ble/att_server.c ../../../ble/le_device_db_memory.c ../../../ble/sm.c ../../../example/embedded/spp_and_le_counter.c
|
SOURCEFILES_QUOTED_IF_SPACED=../src/system_config/bk-audio-dk/system_init.c ../src/system_config/bk-audio-dk/system_tasks.c ../src/btstack_port.c ../src/app_debug.c ../src/app.c ../src/main.c ../../../src/bnep.c ../../../src/btstack_memory.c ../../../src/hci.c ../../../src/hci_cmd.c ../../../src/hci_dump.c ../../../src/hci_transport_h4_embedded.c ../../../src/l2cap.c ../../../src/l2cap_signaling.c ../../../src/linked_list.c ../../../src/btstack_memory_pool.c ../../../src/pan.c ../../../src/remote_device_db_memory.c ../../../src/rfcomm.c ../../../src/btstack_run_loop.c ../../../src/btstack_run_loop_embedded.c ../../../src/sdp_server.c ../../../src/sdp_client.c ../../../src/sdp_query_rfcomm.c ../../../src/sdp_util.c ../../../src/btstack_util.c ../../../../driver/tmr/src/dynamic/drv_tmr.c ../../../../system/clk/src/sys_clk.c ../../../../system/clk/src/sys_clk_pic32mx.c ../../../../system/devcon/src/sys_devcon.c ../../../../system/devcon/src/sys_devcon_pic32mx.c ../../../../system/int/src/sys_int_pic32.c ../../../../system/ports/src/sys_ports.c ../../../chipset/csr/btstack_chipset_csr.c ../../../ble/ad_parser.c ../../../ble/att_db.c ../../../ble/att_dispatch.c ../../../ble/att_server.c ../../../ble/le_device_db_memory.c ../../../ble/sm.c ../../../example/embedded/spp_and_le_counter.c
|
||||||
|
|
||||||
# Object Files Quoted if spaced
|
# Object Files Quoted if spaced
|
||||||
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/2048875307/system_init.o ${OBJECTDIR}/_ext/2048875307/system_tasks.o ${OBJECTDIR}/_ext/1360937237/btstack_port.o ${OBJECTDIR}/_ext/1360937237/app_debug.o ${OBJECTDIR}/_ext/1360937237/app.o ${OBJECTDIR}/_ext/1360937237/main.o ${OBJECTDIR}/_ext/1386528437/bnep.o ${OBJECTDIR}/_ext/1386528437/btstack_memory.o ${OBJECTDIR}/_ext/1386528437/hci.o ${OBJECTDIR}/_ext/1386528437/hci_cmd.o ${OBJECTDIR}/_ext/1386528437/hci_dump.o ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o ${OBJECTDIR}/_ext/1386528437/l2cap.o ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o ${OBJECTDIR}/_ext/1386528437/linked_list.o ${OBJECTDIR}/_ext/1386528437/memory_pool.o ${OBJECTDIR}/_ext/1386528437/pan.o ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o ${OBJECTDIR}/_ext/1386528437/rfcomm.o ${OBJECTDIR}/_ext/1386528437/run_loop.o ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o ${OBJECTDIR}/_ext/1386528437/sdp.o ${OBJECTDIR}/_ext/1386528437/sdp_client.o ${OBJECTDIR}/_ext/1386528437/sdp_parser.o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o ${OBJECTDIR}/_ext/1386528437/sdp_util.o ${OBJECTDIR}/_ext/1386528437/utils.o ${OBJECTDIR}/_ext/1880736137/drv_tmr.o ${OBJECTDIR}/_ext/1112166103/sys_clk.o ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o ${OBJECTDIR}/_ext/1510368962/sys_devcon.o ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o ${OBJECTDIR}/_ext/2147153351/sys_ports.o ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o ${OBJECTDIR}/_ext/1386511916/ad_parser.o ${OBJECTDIR}/_ext/1386511916/att.o ${OBJECTDIR}/_ext/1386511916/att_dispatch.o ${OBJECTDIR}/_ext/1386511916/att_server.o ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o ${OBJECTDIR}/_ext/1386511916/sm.o ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o
|
OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/_ext/2048875307/system_init.o ${OBJECTDIR}/_ext/2048875307/system_tasks.o ${OBJECTDIR}/_ext/1360937237/btstack_port.o ${OBJECTDIR}/_ext/1360937237/app_debug.o ${OBJECTDIR}/_ext/1360937237/app.o ${OBJECTDIR}/_ext/1360937237/main.o ${OBJECTDIR}/_ext/1386528437/bnep.o ${OBJECTDIR}/_ext/1386528437/btstack_memory.o ${OBJECTDIR}/_ext/1386528437/hci.o ${OBJECTDIR}/_ext/1386528437/hci_cmd.o ${OBJECTDIR}/_ext/1386528437/hci_dump.o ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o ${OBJECTDIR}/_ext/1386528437/l2cap.o ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o ${OBJECTDIR}/_ext/1386528437/linked_list.o ${OBJECTDIR}/_ext/1386528437/memory_pool.o ${OBJECTDIR}/_ext/1386528437/pan.o ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o ${OBJECTDIR}/_ext/1386528437/rfcomm.o ${OBJECTDIR}/_ext/1386528437/run_loop.o ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o ${OBJECTDIR}/_ext/1386528437/sdp.o ${OBJECTDIR}/_ext/1386528437/sdp_client.o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ${OBJECTDIR}/_ext/1386528437/sdp_util.o ${OBJECTDIR}/_ext/1386528437/utils.o ${OBJECTDIR}/_ext/1880736137/drv_tmr.o ${OBJECTDIR}/_ext/1112166103/sys_clk.o ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o ${OBJECTDIR}/_ext/1510368962/sys_devcon.o ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o ${OBJECTDIR}/_ext/2147153351/sys_ports.o ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o ${OBJECTDIR}/_ext/1386511916/ad_parser.o ${OBJECTDIR}/_ext/1386511916/att.o ${OBJECTDIR}/_ext/1386511916/att_dispatch.o ${OBJECTDIR}/_ext/1386511916/att_server.o ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o ${OBJECTDIR}/_ext/1386511916/sm.o ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o
|
||||||
POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/2048875307/system_init.o.d ${OBJECTDIR}/_ext/2048875307/system_tasks.o.d ${OBJECTDIR}/_ext/1360937237/btstack_port.o.d ${OBJECTDIR}/_ext/1360937237/app_debug.o.d ${OBJECTDIR}/_ext/1360937237/app.o.d ${OBJECTDIR}/_ext/1360937237/main.o.d ${OBJECTDIR}/_ext/1386528437/bnep.o.d ${OBJECTDIR}/_ext/1386528437/btstack_memory.o.d ${OBJECTDIR}/_ext/1386528437/hci.o.d ${OBJECTDIR}/_ext/1386528437/hci_cmd.o.d ${OBJECTDIR}/_ext/1386528437/hci_dump.o.d ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o.d ${OBJECTDIR}/_ext/1386528437/l2cap.o.d ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o.d ${OBJECTDIR}/_ext/1386528437/linked_list.o.d ${OBJECTDIR}/_ext/1386528437/memory_pool.o.d ${OBJECTDIR}/_ext/1386528437/pan.o.d ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o.d ${OBJECTDIR}/_ext/1386528437/rfcomm.o.d ${OBJECTDIR}/_ext/1386528437/run_loop.o.d ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o.d ${OBJECTDIR}/_ext/1386528437/sdp.o.d ${OBJECTDIR}/_ext/1386528437/sdp_client.o.d ${OBJECTDIR}/_ext/1386528437/sdp_parser.o.d ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d ${OBJECTDIR}/_ext/1386528437/utils.o.d ${OBJECTDIR}/_ext/1880736137/drv_tmr.o.d ${OBJECTDIR}/_ext/1112166103/sys_clk.o.d ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o.d ${OBJECTDIR}/_ext/1510368962/sys_devcon.o.d ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o.d ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o.d ${OBJECTDIR}/_ext/2147153351/sys_ports.o.d ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o.d ${OBJECTDIR}/_ext/1386511916/ad_parser.o.d ${OBJECTDIR}/_ext/1386511916/att.o.d ${OBJECTDIR}/_ext/1386511916/att_dispatch.o.d ${OBJECTDIR}/_ext/1386511916/att_server.o.d ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o.d ${OBJECTDIR}/_ext/1386511916/sm.o.d ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o.d
|
POSSIBLE_DEPFILES=${OBJECTDIR}/_ext/2048875307/system_init.o.d ${OBJECTDIR}/_ext/2048875307/system_tasks.o.d ${OBJECTDIR}/_ext/1360937237/btstack_port.o.d ${OBJECTDIR}/_ext/1360937237/app_debug.o.d ${OBJECTDIR}/_ext/1360937237/app.o.d ${OBJECTDIR}/_ext/1360937237/main.o.d ${OBJECTDIR}/_ext/1386528437/bnep.o.d ${OBJECTDIR}/_ext/1386528437/btstack_memory.o.d ${OBJECTDIR}/_ext/1386528437/hci.o.d ${OBJECTDIR}/_ext/1386528437/hci_cmd.o.d ${OBJECTDIR}/_ext/1386528437/hci_dump.o.d ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o.d ${OBJECTDIR}/_ext/1386528437/l2cap.o.d ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o.d ${OBJECTDIR}/_ext/1386528437/linked_list.o.d ${OBJECTDIR}/_ext/1386528437/memory_pool.o.d ${OBJECTDIR}/_ext/1386528437/pan.o.d ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o.d ${OBJECTDIR}/_ext/1386528437/rfcomm.o.d ${OBJECTDIR}/_ext/1386528437/run_loop.o.d ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o.d ${OBJECTDIR}/_ext/1386528437/sdp.o.d ${OBJECTDIR}/_ext/1386528437/sdp_client.o.d.d ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d.d ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d ${OBJECTDIR}/_ext/1386528437/utils.o.d ${OBJECTDIR}/_ext/1880736137/drv_tmr.o.d ${OBJECTDIR}/_ext/1112166103/sys_clk.o.d ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o.d ${OBJECTDIR}/_ext/1510368962/sys_devcon.o.d ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o.d ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o.d ${OBJECTDIR}/_ext/2147153351/sys_ports.o.d ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o.d ${OBJECTDIR}/_ext/1386511916/ad_parser.o.d ${OBJECTDIR}/_ext/1386511916/att.o.d ${OBJECTDIR}/_ext/1386511916/att_dispatch.o.d ${OBJECTDIR}/_ext/1386511916/att_server.o.d ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o.d ${OBJECTDIR}/_ext/1386511916/sm.o.d ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o.d
|
||||||
|
|
||||||
# Object Files
|
# Object Files
|
||||||
OBJECTFILES=${OBJECTDIR}/_ext/2048875307/system_init.o ${OBJECTDIR}/_ext/2048875307/system_tasks.o ${OBJECTDIR}/_ext/1360937237/btstack_port.o ${OBJECTDIR}/_ext/1360937237/app_debug.o ${OBJECTDIR}/_ext/1360937237/app.o ${OBJECTDIR}/_ext/1360937237/main.o ${OBJECTDIR}/_ext/1386528437/bnep.o ${OBJECTDIR}/_ext/1386528437/btstack_memory.o ${OBJECTDIR}/_ext/1386528437/hci.o ${OBJECTDIR}/_ext/1386528437/hci_cmd.o ${OBJECTDIR}/_ext/1386528437/hci_dump.o ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o ${OBJECTDIR}/_ext/1386528437/l2cap.o ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o ${OBJECTDIR}/_ext/1386528437/linked_list.o ${OBJECTDIR}/_ext/1386528437/memory_pool.o ${OBJECTDIR}/_ext/1386528437/pan.o ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o ${OBJECTDIR}/_ext/1386528437/rfcomm.o ${OBJECTDIR}/_ext/1386528437/run_loop.o ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o ${OBJECTDIR}/_ext/1386528437/sdp.o ${OBJECTDIR}/_ext/1386528437/sdp_client.o ${OBJECTDIR}/_ext/1386528437/sdp_parser.o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o ${OBJECTDIR}/_ext/1386528437/sdp_util.o ${OBJECTDIR}/_ext/1386528437/utils.o ${OBJECTDIR}/_ext/1880736137/drv_tmr.o ${OBJECTDIR}/_ext/1112166103/sys_clk.o ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o ${OBJECTDIR}/_ext/1510368962/sys_devcon.o ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o ${OBJECTDIR}/_ext/2147153351/sys_ports.o ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o ${OBJECTDIR}/_ext/1386511916/ad_parser.o ${OBJECTDIR}/_ext/1386511916/att.o ${OBJECTDIR}/_ext/1386511916/att_dispatch.o ${OBJECTDIR}/_ext/1386511916/att_server.o ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o ${OBJECTDIR}/_ext/1386511916/sm.o ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o
|
OBJECTFILES=${OBJECTDIR}/_ext/2048875307/system_init.o ${OBJECTDIR}/_ext/2048875307/system_tasks.o ${OBJECTDIR}/_ext/1360937237/btstack_port.o ${OBJECTDIR}/_ext/1360937237/app_debug.o ${OBJECTDIR}/_ext/1360937237/app.o ${OBJECTDIR}/_ext/1360937237/main.o ${OBJECTDIR}/_ext/1386528437/bnep.o ${OBJECTDIR}/_ext/1386528437/btstack_memory.o ${OBJECTDIR}/_ext/1386528437/hci.o ${OBJECTDIR}/_ext/1386528437/hci_cmd.o ${OBJECTDIR}/_ext/1386528437/hci_dump.o ${OBJECTDIR}/_ext/1386528437/hci_transport_h4_dma.o ${OBJECTDIR}/_ext/1386528437/l2cap.o ${OBJECTDIR}/_ext/1386528437/l2cap_signaling.o ${OBJECTDIR}/_ext/1386528437/linked_list.o ${OBJECTDIR}/_ext/1386528437/memory_pool.o ${OBJECTDIR}/_ext/1386528437/pan.o ${OBJECTDIR}/_ext/1386528437/remote_device_db_memory.o ${OBJECTDIR}/_ext/1386528437/rfcomm.o ${OBJECTDIR}/_ext/1386528437/run_loop.o ${OBJECTDIR}/_ext/1386528437/btstack_run_loop_embedded.o ${OBJECTDIR}/_ext/1386528437/sdp.o ${OBJECTDIR}/_ext/1386528437/sdp_client.o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ${OBJECTDIR}/_ext/1386528437/sdp_util.o ${OBJECTDIR}/_ext/1386528437/utils.o ${OBJECTDIR}/_ext/1880736137/drv_tmr.o ${OBJECTDIR}/_ext/1112166103/sys_clk.o ${OBJECTDIR}/_ext/1112166103/sys_clk_pic32mx.o ${OBJECTDIR}/_ext/1510368962/sys_devcon.o ${OBJECTDIR}/_ext/1510368962/sys_devcon_pic32mx.o ${OBJECTDIR}/_ext/2087176412/sys_int_pic32.o ${OBJECTDIR}/_ext/2147153351/sys_ports.o ${OBJECTDIR}/_ext/1768124388/btstack_chipset_csr.o ${OBJECTDIR}/_ext/1386511916/ad_parser.o ${OBJECTDIR}/_ext/1386511916/att.o ${OBJECTDIR}/_ext/1386511916/att_dispatch.o ${OBJECTDIR}/_ext/1386511916/att_server.o ${OBJECTDIR}/_ext/1386511916/le_device_db_memory.o ${OBJECTDIR}/_ext/1386511916/sm.o ${OBJECTDIR}/_ext/350421922/spp_and_le_counter.o
|
||||||
|
|
||||||
# Source Files
|
# Source Files
|
||||||
SOURCEFILES=../src/system_config/bk-audio-dk/system_init.c ../src/system_config/bk-audio-dk/system_tasks.c ../src/btstack_port.c ../src/app_debug.c ../src/app.c ../src/main.c ../../../src/bnep.c ../../../src/btstack_memory.c ../../../src/hci.c ../../../src/hci_cmd.c ../../../src/hci_dump.c ../../../src/hci_transport_h4_embedded.c ../../../src/l2cap.c ../../../src/l2cap_signaling.c ../../../src/linked_list.c ../../../src/btstack_memory_pool.c ../../../src/pan.c ../../../src/remote_device_db_memory.c ../../../src/rfcomm.c ../../../src/btstack_run_loop.c ../../../src/btstack_run_loop_embedded.c ../../../src/sdp_server.c ../../../src/sdp_client.c ../../../src/sdp_query_rfcomm.c ../../../src/sdp_query_util.c ../../../src/sdp_util.c ../../../src/btstack_util.c ../../../../driver/tmr/src/dynamic/drv_tmr.c ../../../../system/clk/src/sys_clk.c ../../../../system/clk/src/sys_clk_pic32mx.c ../../../../system/devcon/src/sys_devcon.c ../../../../system/devcon/src/sys_devcon_pic32mx.c ../../../../system/int/src/sys_int_pic32.c ../../../../system/ports/src/sys_ports.c ../../../chipset/csr/btstack_chipset_csr.c ../../../ble/ad_parser.c ../../../ble/att_db.c ../../../ble/att_dispatch.c ../../../ble/att_server.c ../../../ble/le_device_db_memory.c ../../../ble/sm.c ../../../example/embedded/spp_and_le_counter.c
|
SOURCEFILES=../src/system_config/bk-audio-dk/system_init.c ../src/system_config/bk-audio-dk/system_tasks.c ../src/btstack_port.c ../src/app_debug.c ../src/app.c ../src/main.c ../../../src/bnep.c ../../../src/btstack_memory.c ../../../src/hci.c ../../../src/hci_cmd.c ../../../src/hci_dump.c ../../../src/hci_transport_h4_embedded.c ../../../src/l2cap.c ../../../src/l2cap_signaling.c ../../../src/linked_list.c ../../../src/btstack_memory_pool.c ../../../src/pan.c ../../../src/remote_device_db_memory.c ../../../src/rfcomm.c ../../../src/btstack_run_loop.c ../../../src/btstack_run_loop_embedded.c ../../../src/sdp_server.c ../../../src/sdp_client.c ../../../src/sdp_query_rfcomm.c ../../../src/sdp_util.c ../../../src/btstack_util.c ../../../../driver/tmr/src/dynamic/drv_tmr.c ../../../../system/clk/src/sys_clk.c ../../../../system/clk/src/sys_clk_pic32mx.c ../../../../system/devcon/src/sys_devcon.c ../../../../system/devcon/src/sys_devcon_pic32mx.c ../../../../system/int/src/sys_int_pic32.c ../../../../system/ports/src/sys_ports.c ../../../chipset/csr/btstack_chipset_csr.c ../../../ble/ad_parser.c ../../../ble/att_db.c ../../../ble/att_dispatch.c ../../../ble/att_server.c ../../../ble/le_device_db_memory.c ../../../ble/sm.c ../../../example/embedded/spp_and_le_counter.c
|
||||||
|
|
||||||
|
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
@ -238,12 +238,6 @@ ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o: ../../../src/sdp_query_rfcomm.c
|
|||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o
|
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o
|
||||||
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ../../../src/sdp_query_rfcomm.c
|
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ../../../src/sdp_query_rfcomm.c
|
||||||
|
|
||||||
${OBJECTDIR}/_ext/1386528437/sdp_query_util.o: ../../../src/sdp_query_util.c nbproject/Makefile-${CND_CONF}.mk
|
|
||||||
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d
|
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o
|
|
||||||
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -D__MPLAB_DEBUGGER_PK3=1 -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o ../../../src/sdp_query_util.c
|
|
||||||
|
|
||||||
${OBJECTDIR}/_ext/1386528437/sdp_util.o: ../../../src/sdp_util.c nbproject/Makefile-${CND_CONF}.mk
|
${OBJECTDIR}/_ext/1386528437/sdp_util.o: ../../../src/sdp_util.c nbproject/Makefile-${CND_CONF}.mk
|
||||||
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d
|
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d
|
||||||
@ -491,12 +485,6 @@ ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o: ../../../src/sdp_query_rfcomm.c
|
|||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o
|
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o
|
||||||
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ../../../src/sdp_query_rfcomm.c
|
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_rfcomm.o ../../../src/sdp_query_rfcomm.c
|
||||||
|
|
||||||
${OBJECTDIR}/_ext/1386528437/sdp_query_util.o: ../../../src/sdp_query_util.c nbproject/Makefile-${CND_CONF}.mk
|
|
||||||
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d
|
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o
|
|
||||||
@${FIXDEPS} "${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -Os -I"." -I"../../../.." -I"../src" -I"../src/system_config/bk-audio-dk" -I"../../../include" -I"../../../src" -I"../../../ble" -I"../../../chipset/csr" -MMD -MF "${OBJECTDIR}/_ext/1386528437/sdp_query_util.o.d" -o ${OBJECTDIR}/_ext/1386528437/sdp_query_util.o ../../../src/sdp_query_util.c
|
|
||||||
|
|
||||||
${OBJECTDIR}/_ext/1386528437/sdp_util.o: ../../../src/sdp_util.c nbproject/Makefile-${CND_CONF}.mk
|
${OBJECTDIR}/_ext/1386528437/sdp_util.o: ../../../src/sdp_util.c nbproject/Makefile-${CND_CONF}.mk
|
||||||
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
@${MKDIR} "${OBJECTDIR}/_ext/1386528437"
|
||||||
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d
|
@${RM} ${OBJECTDIR}/_ext/1386528437/sdp_util.o.d
|
||||||
|
@ -58,7 +58,6 @@
|
|||||||
<itemPath>../../../src/sdp_server.h</itemPath>
|
<itemPath>../../../src/sdp_server.h</itemPath>
|
||||||
<itemPath>../../../src/sdp_client.h</itemPath>
|
<itemPath>../../../src/sdp_client.h</itemPath>
|
||||||
<itemPath>../../../src/sdp_query_rfcomm.h</itemPath>
|
<itemPath>../../../src/sdp_query_rfcomm.h</itemPath>
|
||||||
<itemPath>../../../src/sdp_query_util.h</itemPath>
|
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
<logicalFolder name="f2" displayName="framework" projectFiles="true">
|
<logicalFolder name="f2" displayName="framework" projectFiles="true">
|
||||||
@ -135,7 +134,6 @@
|
|||||||
<itemPath>../../../src/classic/sdp_server.c</itemPath>
|
<itemPath>../../../src/classic/sdp_server.c</itemPath>
|
||||||
<itemPath>../../../src/classic/sdp_client.c</itemPath>
|
<itemPath>../../../src/classic/sdp_client.c</itemPath>
|
||||||
<itemPath>../../../src/classic/sdp_query_rfcomm.c</itemPath>
|
<itemPath>../../../src/classic/sdp_query_rfcomm.c</itemPath>
|
||||||
<itemPath>../../../src/classic/sdp_query_util.c</itemPath>
|
|
||||||
<itemPath>../../../src/classic/sdp_util.c</itemPath>
|
<itemPath>../../../src/classic/sdp_util.c</itemPath>
|
||||||
<itemPath>../../../src/btstack_util.c</itemPath>
|
<itemPath>../../../src/btstack_util.c</itemPath>
|
||||||
</logicalFolder>
|
</logicalFolder>
|
||||||
|
@ -38,7 +38,6 @@ COMMON = \
|
|||||||
sdp_util.c \
|
sdp_util.c \
|
||||||
btstack_util.c \
|
btstack_util.c \
|
||||||
sdp_client.c \
|
sdp_client.c \
|
||||||
sdp_query_util.c \
|
|
||||||
sdp_query_rfcomm.c \
|
sdp_query_rfcomm.c \
|
||||||
|
|
||||||
BLE = \
|
BLE = \
|
||||||
|
@ -23,7 +23,6 @@ $(NAME)_SOURCES += \
|
|||||||
../../src/classic/sdp_server.c \
|
../../src/classic/sdp_server.c \
|
||||||
../../src/classic/sdp_client.c \
|
../../src/classic/sdp_client.c \
|
||||||
../../src/classic/sdp_query_rfcomm.c \
|
../../src/classic/sdp_query_rfcomm.c \
|
||||||
../../src/classic/sdp_query_util.c \
|
|
||||||
../../src/classic/sdp_util.c \
|
../../src/classic/sdp_util.c \
|
||||||
../../src/btstack_linked_list.c \
|
../../src/btstack_linked_list.c \
|
||||||
../../src/btstack_memory.c \
|
../../src/btstack_memory.c \
|
||||||
|
@ -89,7 +89,6 @@
|
|||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
#include "classic/sdp_client.h"
|
#include "classic/sdp_client.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
#include "classic/sdp_util.h"
|
#include "classic/sdp_util.h"
|
||||||
// #endif
|
// #endif
|
||||||
|
|
||||||
|
@ -56,9 +56,10 @@
|
|||||||
#include "btstack_memory.h"
|
#include "btstack_memory.h"
|
||||||
#include "hci_dump.h"
|
#include "hci_dump.h"
|
||||||
#include "l2cap.h"
|
#include "l2cap.h"
|
||||||
|
#include "btstack_debug.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
#include "btstack_debug.h"
|
#include "classic/sdp_util.h"
|
||||||
#include "btstack_event.h"
|
#include "btstack_event.h"
|
||||||
|
|
||||||
#define HFP_HF_FEATURES_SIZE 10
|
#define HFP_HF_FEATURES_SIZE 10
|
||||||
|
@ -55,12 +55,13 @@
|
|||||||
#include "btstack_memory.h"
|
#include "btstack_memory.h"
|
||||||
#include "hci_dump.h"
|
#include "hci_dump.h"
|
||||||
#include "l2cap.h"
|
#include "l2cap.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
|
||||||
#include "classic/sdp_server.h"
|
|
||||||
#include "btstack_debug.h"
|
#include "btstack_debug.h"
|
||||||
#include "classic/hfp.h"
|
#include "classic/hfp.h"
|
||||||
#include "classic/hfp_gsm_model.h"
|
|
||||||
#include "classic/hfp_ag.h"
|
#include "classic/hfp_ag.h"
|
||||||
|
#include "classic/hfp_gsm_model.h"
|
||||||
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
|
#include "classic/sdp_server.h"
|
||||||
|
#include "classic/sdp_util.h"
|
||||||
|
|
||||||
// private prototypes
|
// private prototypes
|
||||||
static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||||
|
@ -57,6 +57,7 @@
|
|||||||
#include "l2cap.h"
|
#include "l2cap.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
|
#include "classic/sdp_util.h"
|
||||||
#include "btstack_debug.h"
|
#include "btstack_debug.h"
|
||||||
#include "classic/hfp.h"
|
#include "classic/hfp.h"
|
||||||
#include "classic/hfp_hf.h"
|
#include "classic/hfp_hf.h"
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "btstack_run_loop.h"
|
#include "btstack_run_loop.h"
|
||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
|
#include "classic/sdp_util.h"
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
#include "hci_dump.h"
|
#include "hci_dump.h"
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
#include "btstack_run_loop.h"
|
#include "btstack_run_loop.h"
|
||||||
#include "classic/sdp_server.h"
|
#include "classic/sdp_server.h"
|
||||||
#include "classic/sdp_query_rfcomm.h"
|
#include "classic/sdp_query_rfcomm.h"
|
||||||
|
#include "classic/sdp_util.h"
|
||||||
#include "hci.h"
|
#include "hci.h"
|
||||||
#include "hci_cmd.h"
|
#include "hci_cmd.h"
|
||||||
#include "hci_dump.h"
|
#include "hci_dump.h"
|
||||||
|
@ -82,10 +82,10 @@ static uint16_t sdp_client_setup_service_search_request(uint8_t * data);
|
|||||||
static uint16_t sdp_client_setup_service_attribute_request(uint8_t * data);
|
static uint16_t sdp_client_setup_service_attribute_request(uint8_t * data);
|
||||||
static void sdp_client_parse_service_search_response(uint8_t* packet);
|
static void sdp_client_parse_service_search_response(uint8_t* packet);
|
||||||
static void sdp_client_parse_service_attribute_response(uint8_t* packet);
|
static void sdp_client_parse_service_attribute_response(uint8_t* packet);
|
||||||
static uint32_t serviceRecordHandle;
|
|
||||||
static uint32_t record_handle;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static uint8_t des_attributeIDList[] = { 0x35, 0x05, 0x0A, 0x00, 0x01, 0xff, 0xff}; // Attribute: 0x0001 - 0x0100
|
||||||
|
|
||||||
// State DES Parser
|
// State DES Parser
|
||||||
static de_state_t de_header_state;
|
static de_state_t de_header_state;
|
||||||
|
|
||||||
@ -112,6 +112,10 @@ static uint8_t continuationState[16];
|
|||||||
static uint8_t continuationStateLen;
|
static uint8_t continuationStateLen;
|
||||||
static sdp_client_state_t sdp_client_state = INIT;
|
static sdp_client_state_t sdp_client_state = INIT;
|
||||||
static SDP_PDU_ID_t PDU_ID = SDP_Invalid;
|
static SDP_PDU_ID_t PDU_ID = SDP_Invalid;
|
||||||
|
#ifdef ENABLE_SDP_EXTRA_QUERIES
|
||||||
|
static uint32_t serviceRecordHandle;
|
||||||
|
static uint32_t record_handle;
|
||||||
|
#endif
|
||||||
|
|
||||||
// DES Parser
|
// DES Parser
|
||||||
void de_state_init(de_state_t * de_state){
|
void de_state_init(de_state_t * de_state){
|
||||||
@ -707,6 +711,24 @@ void sdp_client_query(btstack_packet_handler_t callback, bd_addr_t remote, const
|
|||||||
l2cap_create_channel(sdp_client_packet_handler, remote, PSM_SDP, l2cap_max_mtu(), NULL);
|
l2cap_create_channel(sdp_client_packet_handler, remote, PSM_SDP, l2cap_max_mtu(), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sdp_client_query_uuid16(btstack_packet_handler_t callback, bd_addr_t remote, uint16_t uuid){
|
||||||
|
if (!sdp_client_ready()){
|
||||||
|
sdp_client_emit_busy(callback);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint8_t * service_service_search_pattern = sdp_service_search_pattern_for_uuid16(uuid);
|
||||||
|
sdp_client_query(callback, remote, service_service_search_pattern, des_attributeIDList);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sdp_client_query_uuid128(btstack_packet_handler_t callback, bd_addr_t remote, const uint8_t* uuid){
|
||||||
|
if (!sdp_client_ready()){
|
||||||
|
sdp_client_emit_busy(callback);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uint8_t * service_service_search_pattern = sdp_service_search_pattern_for_uuid128(uuid);
|
||||||
|
sdp_client_query(callback, remote, service_service_search_pattern, des_attributeIDList);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_SDP_EXTRA_QUERIES
|
#ifdef ENABLE_SDP_EXTRA_QUERIES
|
||||||
void sdp_client_service_attribute_search(btstack_packet_handler_t callback, bd_addr_t remote, uint32_t search_service_record_handle, uint8_t * des_attribute_id_list){
|
void sdp_client_service_attribute_search(btstack_packet_handler_t callback, bd_addr_t remote, uint32_t search_service_record_handle, uint8_t * des_attribute_id_list){
|
||||||
if (!sdp_client_ready()) {
|
if (!sdp_client_ready()) {
|
||||||
|
@ -78,6 +78,19 @@ int sdp_client_ready(void);
|
|||||||
*/
|
*/
|
||||||
void sdp_client_query(btstack_packet_handler_t callback, bd_addr_t remote, const uint8_t * des_service_search_pattern, const uint8_t * des_attribute_id_list);
|
void sdp_client_query(btstack_packet_handler_t callback, bd_addr_t remote, const uint8_t * des_service_search_pattern, const uint8_t * des_attribute_id_list);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @brief Searches SDP records on a remote device for all services with a given UUID.
|
||||||
|
* @note calls sdp_client_query with service search pattern based on uuid16
|
||||||
|
*/
|
||||||
|
void sdp_client_query_uuid16(btstack_packet_handler_t callback, bd_addr_t remote, uint16_t uuid16);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @brief Searches SDP records on a remote device for all services with a given UUID.
|
||||||
|
* @note calls sdp_client_query with service search pattern based on uuid128
|
||||||
|
*/
|
||||||
|
void sdp_client_query_uuid128(btstack_packet_handler_t callback, bd_addr_t remote, const uint8_t* uuid128);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Retrieves all attribute IDs of a SDP record specified by its service record handle and a list of attribute IDs.
|
* @brief Retrieves all attribute IDs of a SDP record specified by its service record handle and a list of attribute IDs.
|
||||||
* The remote data is handled by the SDP parser. The SDP parser delivers attribute values and done event via the callback.
|
* The remote data is handled by the SDP parser. The SDP parser delivers attribute values and done event via the callback.
|
||||||
|
@ -43,7 +43,6 @@
|
|||||||
#define __SDP_QUERY_RFCOMM_H
|
#define __SDP_QUERY_RFCOMM_H
|
||||||
|
|
||||||
#include "btstack_util.h"
|
#include "btstack_util.h"
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
|
|
||||||
#define SDP_SERVICE_NAME_LEN 20
|
#define SDP_SERVICE_NAME_LEN 20
|
||||||
|
|
||||||
|
@ -1,96 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2014 BlueKitchen GmbH
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of the copyright holders nor the names of
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
* 4. Any redistribution, use, or modification is done solely for
|
|
||||||
* personal benefit and not for any commercial purpose or for
|
|
||||||
* monetary gain.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
|
|
||||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
|
|
||||||
* RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
||||||
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* Please inquire about commercial licensing options at
|
|
||||||
* contact@bluekitchen-gmbh.com
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sdp_query_util.c
|
|
||||||
*/
|
|
||||||
#include "btstack_debug.h"
|
|
||||||
#include "classic/sdp_client.h"
|
|
||||||
#include "classic/sdp_query_util.h"
|
|
||||||
|
|
||||||
static uint8_t des_attributeIDList[] = { 0x35, 0x05, 0x0A, 0x00, 0x01, 0xff, 0xff}; // Attribute: 0x0001 - 0x0100
|
|
||||||
static uint8_t des_serviceSearchPattern[] = {0x35, 0x03, 0x19, 0x00, 0x00};
|
|
||||||
static uint8_t des_serviceSearchPatternUUID128[] = {
|
|
||||||
0x35, 0x10, 0x19,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
|
||||||
|
|
||||||
static uint8_t* create_service_search_pattern_for_uuid128(uint8_t* uuid){
|
|
||||||
memcpy(&des_serviceSearchPatternUUID128[3], uuid, 16);
|
|
||||||
return (uint8_t*)des_serviceSearchPatternUUID128;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sdp_general_query_emit_busy(btstack_packet_handler_t callback){
|
|
||||||
log_error("sdp_general_query initiated when not ready");
|
|
||||||
uint8_t event[] = { SDP_EVENT_QUERY_COMPLETE, 1, SDP_QUERY_BUSY};
|
|
||||||
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Checks if the SDP Client is ready
|
|
||||||
* @return 1 when no query is active
|
|
||||||
*/
|
|
||||||
int sdp_general_query_ready(void){
|
|
||||||
return sdp_client_ready();
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t* create_service_search_pattern_for_uuid(uint16_t uuid){
|
|
||||||
big_endian_store_16(des_serviceSearchPattern, 3, uuid);
|
|
||||||
return (uint8_t*)des_serviceSearchPattern;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void sdp_general_query_for_uuid(btstack_packet_handler_t callback, bd_addr_t remote, uint16_t uuid){
|
|
||||||
if (!sdp_client_ready()){
|
|
||||||
sdp_general_query_emit_busy(callback);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
create_service_search_pattern_for_uuid(uuid);
|
|
||||||
sdp_client_query(callback, remote, (uint8_t*)&des_serviceSearchPattern[0], (uint8_t*)&des_attributeIDList[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
void sdp_general_query_for_uuid128(btstack_packet_handler_t callback, bd_addr_t remote, uint8_t* uuid){
|
|
||||||
if (!sdp_client_ready()){
|
|
||||||
sdp_general_query_emit_busy(callback);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
create_service_search_pattern_for_uuid128(uuid);
|
|
||||||
sdp_client_query(callback, remote, (uint8_t*)&des_serviceSearchPatternUUID128[0], (uint8_t*)&des_attributeIDList[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2014 BlueKitchen GmbH
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of the copyright holders nor the names of
|
|
||||||
* contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
* 4. Any redistribution, use, or modification is done solely for
|
|
||||||
* personal benefit and not for any commercial purpose or for
|
|
||||||
* monetary gain.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
|
|
||||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
|
|
||||||
* RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
|
||||||
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
||||||
* SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* Please inquire about commercial licensing options at
|
|
||||||
* contact@bluekitchen-gmbh.com
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* sdp_query_util.h
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __SDP_QUERY_UTIL_H
|
|
||||||
#define __SDP_QUERY_UTIL_H
|
|
||||||
|
|
||||||
|
|
||||||
#if defined __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* API_START */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @brief Returns service search pattern for given UUID
|
|
||||||
*/
|
|
||||||
uint8_t* create_service_search_pattern_for_uuid(uint16_t uuid);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Checks if the SDP Client is ready
|
|
||||||
* @return 1 when no query is active
|
|
||||||
*/
|
|
||||||
int sdp_general_query_ready(void);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @brief Searches SDP records on a remote device for all services with a given UUID.
|
|
||||||
*/
|
|
||||||
void sdp_general_query_for_uuid(btstack_packet_handler_t callback, bd_addr_t remote, uint16_t uuid16);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @brief
|
|
||||||
*/
|
|
||||||
void sdp_general_query_for_uuid128(btstack_packet_handler_t callback, bd_addr_t remote, uint8_t* uuid128);
|
|
||||||
|
|
||||||
/* API_END */
|
|
||||||
|
|
||||||
#if defined __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // __SDP_QUERY_UTIL_H
|
|
@ -60,6 +60,12 @@
|
|||||||
const char * const type_names[] = { "NIL", "UINT", "INT", "UUID", "STRING", "BOOL", "DES", "DEA", "URL"};
|
const char * const type_names[] = { "NIL", "UINT", "INT", "UUID", "STRING", "BOOL", "DES", "DEA", "URL"};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static uint8_t des_serviceSearchPattern[] = {0x35, 0x03, 0x19, 0x00, 0x00};
|
||||||
|
static uint8_t des_serviceSearchPatternUUID128[] = {
|
||||||
|
0x35, 0x10, 0x19,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||||
|
|
||||||
// MARK: DataElement getter
|
// MARK: DataElement getter
|
||||||
de_size_t de_get_size_type(const uint8_t *header){
|
de_size_t de_get_size_type(const uint8_t *header){
|
||||||
return (de_size_t) (header[0] & 7);
|
return (de_size_t) (header[0] & 7);
|
||||||
@ -746,3 +752,14 @@ void sdp_create_spp_service(uint8_t *service, uint32_t service_record_handle, in
|
|||||||
de_add_number(service, DE_UINT, DE_SIZE_16, 0x0100);
|
de_add_number(service, DE_UINT, DE_SIZE_16, 0x0100);
|
||||||
de_add_data(service, DE_STRING, strlen(name), (uint8_t *) name);
|
de_add_data(service, DE_STRING, strlen(name), (uint8_t *) name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t* sdp_service_search_pattern_for_uuid16(uint16_t uuid16){
|
||||||
|
big_endian_store_16(des_serviceSearchPattern, 3, uuid16);
|
||||||
|
return (uint8_t*)des_serviceSearchPattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t* sdp_service_search_pattern_for_uuid128(const uint8_t * uuid128){
|
||||||
|
memcpy(&des_serviceSearchPatternUUID128[3], uuid128, 16);
|
||||||
|
return (uint8_t*)des_serviceSearchPatternUUID128;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -119,6 +119,18 @@ int sdp_traversal_match_pattern(uint8_t * element, de_type_t attributeType
|
|||||||
|
|
||||||
void sdp_create_spp_service(uint8_t *service, uint32_t service_record_handle, int service_id, const char *name);
|
void sdp_create_spp_service(uint8_t *service, uint32_t service_record_handle, int service_id, const char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @brief Returns service search pattern for given UUID-16
|
||||||
|
* @note Uses fixed buffer
|
||||||
|
*/
|
||||||
|
uint8_t* sdp_service_search_pattern_for_uuid16(uint16_t uuid16);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @brief Returns service search pattern for given UUID-128
|
||||||
|
* @note Uses fixed buffer
|
||||||
|
*/
|
||||||
|
uint8_t* sdp_service_search_pattern_for_uuid128(const uint8_t * uuid128);
|
||||||
|
|
||||||
/* API_END */
|
/* API_END */
|
||||||
|
|
||||||
#if defined __cplusplus
|
#if defined __cplusplus
|
||||||
|
@ -24,7 +24,6 @@ COMMON = \
|
|||||||
l2cap_signaling.c \
|
l2cap_signaling.c \
|
||||||
rfcomm.c \
|
rfcomm.c \
|
||||||
sdp_client.c \
|
sdp_client.c \
|
||||||
sdp_query_util.c \
|
|
||||||
sdp_util.c \
|
sdp_util.c \
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user