From e41b54f56c35ae7bd4e5b5dc7f9584aaf49fd86a Mon Sep 17 00:00:00 2001 From: Oliver Ruiz Dorantes Date: Mon, 8 Dec 2008 22:45:25 +0000 Subject: [PATCH] GetAddress and GetFriendlyName does not need a dedicated request in the server side git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28783 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/bluetooth/LocalDevice.cpp | 47 ++++++++++++++++++------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/src/kits/bluetooth/LocalDevice.cpp b/src/kits/bluetooth/LocalDevice.cpp index 6c6160abf6..0c53f8331c 100644 --- a/src/kits/bluetooth/LocalDevice.cpp +++ b/src/kits/bluetooth/LocalDevice.cpp @@ -180,29 +180,32 @@ bdaddr_t LocalDevice::GetBluetoothAddress() { if (fMessenger == NULL) - return bdaddrUtils::NullAddress(); + return bdaddrUtils::LocalAddress(); + + size_t size; + void* command = buildReadBdAddr(&size); + + if (command == NULL) + return bdaddrUtils::LocalAddress(); const bdaddr_t* bdaddr; - BMessage request(BT_MSG_GET_ADDRESS); + BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST); BMessage reply; - ssize_t size; - + ssize_t ssize; + /* ADD ID */ request.AddInt32("hci_id", hid); + request.AddData("raw command", B_ANY_TYPE, command, size); + request.AddInt16("eventExpected", HCI_EVENT_CMD_COMPLETE); + request.AddInt16("opcodeExpected", PACK_OPCODE(OGF_INFORMATIONAL_PARAM, OCF_READ_BD_ADDR)); + if (fMessenger->SendMessage(&request, &reply) == B_OK) { - - if (reply.FindData("bdaddr", B_ANY_TYPE, 0, (const void**)&bdaddr, &size) == B_OK ){ - + if (reply.FindData("bdaddr", B_ANY_TYPE, 0, (const void**)&bdaddr, &ssize) == B_OK ) return *bdaddr; - - } else { - return bdaddrUtils::NullAddress(); - } - } - return bdaddrUtils::NullAddress(); + return bdaddrUtils::LocalAddress(); } @@ -210,22 +213,30 @@ BString LocalDevice::GetFriendlyName() { if (fMessenger == NULL) - return NULL; + return BString("Unknown|Messenger"); + + size_t size; + void* command = buildReadLocalName(&size); + if (command == NULL) + return BString("Unknown|NoMemory"); BString friendlyname; - BMessage request(BT_MSG_GET_FRIENDLY_NAME); + BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST); BMessage reply; - /* ADD ID */ + request.AddInt32("hci_id", hid); - + request.AddData("raw command", B_ANY_TYPE, command, size); + request.AddInt16("eventExpected", HCI_EVENT_CMD_COMPLETE); + request.AddInt16("opcodeExpected", PACK_OPCODE(OGF_CONTROL_BASEBAND, OCF_READ_LOCAL_NAME)); + if (fMessenger->SendMessage(&request, &reply) == B_OK && reply.FindString("friendlyname", &friendlyname) == B_OK){ return friendlyname; } - return BString("Unknown"); + return BString("Unknown|ServerFailed"); }