diff --git a/headers/private/bluetooth/CommandManager.h b/headers/private/bluetooth/CommandManager.h index 7903a90584..d9b63b877f 100644 --- a/headers/private/bluetooth/CommandManager.h +++ b/headers/private/bluetooth/CommandManager.h @@ -22,6 +22,8 @@ void* buildInquiry(uint32 lap, uint8 length, uint8 num_rsp, size_t* outsize); void* buildInquiryCancel(size_t* outsize); void* buildPinCodeRequestReply(bdaddr_t bdaddr, uint8 length, char pincode[16], size_t* outsize); void* buildPinCodeRequestNegativeReply(bdaddr_t bdaddr, size_t* outsize); +void* buildAcceptConnectionRequest(bdaddr_t bdaddr, uint8 role, size_t* outsize); +void* buildRejectConnectionRequest(bdaddr_t bdaddr, size_t* outsize); /* OGF_INFORMATIONAL_PARAM */ void* buildReadBufferSize(size_t* outsize); diff --git a/src/kits/bluetooth/CommandManager.cpp b/src/kits/bluetooth/CommandManager.cpp index 006b4d9e5a..81c5810a29 100644 --- a/src/kits/bluetooth/CommandManager.cpp +++ b/src/kits/bluetooth/CommandManager.cpp @@ -99,6 +99,7 @@ void* buildAuthEnable(uint8 auth, size_t* outsize) #pragma mark - LINK CONTROL - #endif + void* buildCreateConnection(bdaddr_t bdaddr) { /* @@ -157,6 +158,7 @@ void* buildInquiry(uint32 lap, uint8 length, uint8 num_rsp, size_t* outsize) return command; } + void* buildInquiryCancel(size_t* outsize) { @@ -205,6 +207,37 @@ void* buildPinCodeRequestNegativeReply(bdaddr_t bdaddr, size_t* outsize) } +void* buildAcceptConnectionRequest(bdaddr_t bdaddr, uint8 role, size_t* outsize) +{ + struct hci_cp_accept_conn_req* param; + + void* command = buildCommand(OGF_LINK_CONTROL, OCF_ACCEPT_CONN_REQ, + (void**) ¶m, sizeof(struct hci_cp_accept_conn_req), outsize); + + if (command != NULL) { + param->bdaddr = bdaddr; + param->role = role; + } + + return command; +} + + +void* buildRejectConnectionRequest(bdaddr_t bdaddr, size_t* outsize) +{ + struct hci_cp_reject_conn_req* param; + + void *command = buildCommand(OGF_LINK_CONTROL, OCF_REJECT_CONN_REQ, + (void**) ¶m, sizeof(struct hci_cp_reject_conn_req), outsize); + + if (command != NULL) { + param->bdaddr = bdaddr; + } + + return command; +} + + #if 0 #pragma mark - INFORMATIONAL_PARAM - #endif