- Implement the server understand the Inquiry complete, and the Inquiry result.
- With this, we should be able to discover other devices, but not tested yet. No application to use this part of the kit git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24733 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
1ba54b5b31
commit
4b7428b564
@ -111,9 +111,11 @@ printf("### \n");
|
|||||||
// we are waiting for a reply
|
// we are waiting for a reply
|
||||||
switch (event->ecode) {
|
switch (event->ecode) {
|
||||||
case HCI_EVENT_INQUIRY_COMPLETE:
|
case HCI_EVENT_INQUIRY_COMPLETE:
|
||||||
|
InquiryComplete((uint8*)(event+1), request);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HCI_EVENT_INQUIRY_RESULT:
|
case HCI_EVENT_INQUIRY_RESULT:
|
||||||
|
InquiryResult((struct inquiry_info*)(event+1), request);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case HCI_EVENT_CONN_COMPLETE:
|
case HCI_EVENT_CONN_COMPLETE:
|
||||||
@ -229,6 +231,8 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event, BMessage* re
|
|||||||
Output::Instance()->Post("\n", BLACKBOARD_LD_OFFSET + GetID());
|
Output::Instance()->Post("\n", BLACKBOARD_LD_OFFSET + GetID());
|
||||||
|
|
||||||
// Handle command complete information
|
// Handle command complete information
|
||||||
|
// FIX ME! the expected code might me in another
|
||||||
|
// index as is relative to the event not the request
|
||||||
request->FindInt16("opcodeExpected", 0 /*REVIEW!*/, &opcodeExpected);
|
request->FindInt16("opcodeExpected", 0 /*REVIEW!*/, &opcodeExpected);
|
||||||
|
|
||||||
|
|
||||||
@ -259,8 +263,9 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event, BMessage* re
|
|||||||
request->SendReply(&reply);
|
request->SendReply(&reply);
|
||||||
Output::Instance()->Post("Negative reply for getAdress\n", BLACKBOARD_KIT);
|
Output::Instance()->Post("Negative reply for getAdress\n", BLACKBOARD_KIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearWantedEvent(request, PACK_OPCODE(OGF_INFORMATIONAL_PARAM, OCF_READ_BD_ADDR));
|
// This request is not genna be used anymore
|
||||||
|
ClearWantedEvent(request);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -283,8 +288,9 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event, BMessage* re
|
|||||||
|
|
||||||
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
||||||
reply.PrintToStream();
|
reply.PrintToStream();
|
||||||
|
|
||||||
ClearWantedEvent(request, PACK_OPCODE(OGF_CONTROL_BASEBAND, OCF_READ_LOCAL_NAME));
|
// This request is not genna be used anymore
|
||||||
|
ClearWantedEvent(request);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -306,8 +312,9 @@ LocalDeviceImpl::CommandComplete(struct hci_ev_cmd_complete* event, BMessage* re
|
|||||||
|
|
||||||
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
||||||
reply.PrintToStream();
|
reply.PrintToStream();
|
||||||
|
|
||||||
ClearWantedEvent(request, PACK_OPCODE(OGF_CONTROL_BASEBAND, OCF_WRITE_SCAN_ENABLE));
|
// This request is not genna be used anymore
|
||||||
|
ClearWantedEvent(request);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -355,7 +362,7 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event, BMessage* reques
|
|||||||
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
printf("Sending reply ... %ld\n",request->SendReply(&reply));
|
||||||
reply.PrintToStream();
|
reply.PrintToStream();
|
||||||
|
|
||||||
ClearWantedEvent(request, PACK_OPCODE(OGF_LINK_CONTROL, OCF_INQUIRY));
|
ClearWantedEvent(request, HCI_EVENT_CMD_STATUS, PACK_OPCODE(OGF_LINK_CONTROL, OCF_INQUIRY));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -366,6 +373,32 @@ LocalDeviceImpl::CommandStatus(struct hci_ev_cmd_status* event, BMessage* reques
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
LocalDeviceImpl::InquiryResult(struct inquiry_info* event, BMessage* request)
|
||||||
|
{
|
||||||
|
|
||||||
|
BMessage reply(BT_MSG_INQUIRY_DEVICE);
|
||||||
|
|
||||||
|
reply.AddData("info", B_ANY_TYPE, &event, sizeof(struct inquiry_info));
|
||||||
|
|
||||||
|
printf("%s: Sending reply ... %ld\n",__FUNCTION__, request->SendReply(&reply));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
LocalDeviceImpl::InquiryComplete(uint8* status, BMessage* request)
|
||||||
|
{
|
||||||
|
BMessage reply(BT_MSG_INQUIRY_COMPLETED);
|
||||||
|
|
||||||
|
reply.AddInt8("status", *status);
|
||||||
|
printf("%s: Sending reply ... %ld\n",__FUNCTION__, request->SendReply(&reply));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
#pragma mark - Request Methods -
|
#pragma mark - Request Methods -
|
||||||
#endif
|
#endif
|
||||||
|
@ -40,6 +40,10 @@ public:
|
|||||||
void CommandComplete(struct hci_ev_cmd_complete* event, BMessage* request);
|
void CommandComplete(struct hci_ev_cmd_complete* event, BMessage* request);
|
||||||
void CommandStatus(struct hci_ev_cmd_status* event, BMessage* request);
|
void CommandStatus(struct hci_ev_cmd_status* event, BMessage* request);
|
||||||
|
|
||||||
|
// Inquiry
|
||||||
|
void InquiryResult(struct inquiry_info* event, BMessage* request);
|
||||||
|
void InquiryComplete(uint8* status, BMessage* request);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user