Cleapups, Fix memory leaks,
Patch by Mika Lindqvist. Could we give give him Commit access? I am getting daily patches from him with fixes and new features. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26227 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -52,10 +52,11 @@ class LocalDevice : public BluetoothDevice {
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
LocalDevice(hci_id hid);
|
LocalDevice(hci_id hid);
|
||||||
|
virtual ~LocalDevice();
|
||||||
|
|
||||||
hci_id GetID(void) {return hid;}
|
hci_id GetID(void) {return hid;}
|
||||||
static LocalDevice* RequestLocalDeviceID(BMessage* request);
|
static LocalDevice* RequestLocalDeviceID(BMessage* request);
|
||||||
|
|
||||||
static BMessenger* sfMessenger;
|
|
||||||
BMessenger* fMessenger;
|
BMessenger* fMessenger;
|
||||||
|
|
||||||
hci_id hid;
|
hci_id hid;
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ class RemoteDevice : public BluetoothDevice {
|
|||||||
static const int WAIT = B_BT_WAIT;
|
static const int WAIT = B_BT_WAIT;
|
||||||
static const int SUCCEEDED = B_BT_SUCCEEDED;
|
static const int SUCCEEDED = B_BT_SUCCEEDED;
|
||||||
|
|
||||||
|
virtual ~RemoteDevice();
|
||||||
|
|
||||||
bool IsTrustedDevice();
|
bool IsTrustedDevice();
|
||||||
BString GetFriendlyName(bool alwaysAsk); /* Throwing */
|
BString GetFriendlyName(bool alwaysAsk); /* Throwing */
|
||||||
BString GetFriendlyName(void); /* Throwing */
|
BString GetFriendlyName(void); /* Throwing */
|
||||||
@@ -52,6 +54,8 @@ class RemoteDevice : public BluetoothDevice {
|
|||||||
RemoteDevice(BString address);
|
RemoteDevice(BString address);
|
||||||
RemoteDevice(bdaddr_t address);
|
RemoteDevice(bdaddr_t address);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Instances of this class only would be instantiated by Discovery[Listener|Agent] */
|
/* Instances of this class only would be instantiated by Discovery[Listener|Agent] */
|
||||||
friend class DiscoveryListener;
|
friend class DiscoveryListener;
|
||||||
void SetLocalDeviceOwner(LocalDevice* ld);
|
void SetLocalDeviceOwner(LocalDevice* ld);
|
||||||
@@ -59,6 +63,7 @@ class RemoteDevice : public BluetoothDevice {
|
|||||||
private:
|
private:
|
||||||
|
|
||||||
LocalDevice* fDiscovererLocalDevice;
|
LocalDevice* fDiscovererLocalDevice;
|
||||||
|
BMessenger* fMessenger;
|
||||||
|
|
||||||
uint8 fPageRepetitionMode;
|
uint8 fPageRepetitionMode;
|
||||||
uint8 fScanPeriodMode;
|
uint8 fScanPeriodMode;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ DiscoveryAgent::RetrieveDevices(int option)
|
|||||||
{
|
{
|
||||||
/* No inquiry process initiated */
|
/* No inquiry process initiated */
|
||||||
if (fLastUsedListener == NULL)
|
if (fLastUsedListener == NULL)
|
||||||
return NULL; // xxx: Fix me
|
return RemoteDevicesList();
|
||||||
|
|
||||||
return fLastUsedListener->GetRemoteDevicesList();
|
return fLastUsedListener->GetRemoteDevicesList();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,29 +22,31 @@
|
|||||||
|
|
||||||
#include "KitSupport.h"
|
#include "KitSupport.h"
|
||||||
|
|
||||||
/* TODO: remove me */
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
namespace Bluetooth {
|
namespace Bluetooth {
|
||||||
|
|
||||||
BMessenger* LocalDevice::sfMessenger = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
LocalDevice*
|
LocalDevice*
|
||||||
LocalDevice::RequestLocalDeviceID(BMessage* request)
|
LocalDevice::RequestLocalDeviceID(BMessage* request)
|
||||||
{
|
{
|
||||||
BMessage reply;
|
BMessage reply;
|
||||||
hci_id hid;
|
hci_id hid;
|
||||||
|
LocalDevice* lDevice = NULL;
|
||||||
|
|
||||||
if (sfMessenger->SendMessage(request, &reply) == B_OK &&
|
BMessenger* messenger = _RetrieveBluetoothMessenger();
|
||||||
reply.FindInt32("hci_id", &hid) == B_OK ){
|
|
||||||
|
|
||||||
if (hid >= 0) {
|
|
||||||
return new LocalDevice(hid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (messenger == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
if (messenger->SendMessage(request, &reply) == B_OK &&
|
||||||
|
reply.FindInt32("hci_id", &hid) == B_OK ) {
|
||||||
|
|
||||||
|
if (hid >= 0)
|
||||||
|
lDevice = new LocalDevice(hid);
|
||||||
|
}
|
||||||
|
|
||||||
|
delete messenger;
|
||||||
|
return lDevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -56,9 +58,6 @@ LocalDevice::RequestLocalDeviceID(BMessage* request)
|
|||||||
LocalDevice*
|
LocalDevice*
|
||||||
LocalDevice::GetLocalDevice()
|
LocalDevice::GetLocalDevice()
|
||||||
{
|
{
|
||||||
if ((sfMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
||||||
|
|
||||||
return RequestLocalDeviceID(&request);
|
return RequestLocalDeviceID(&request);
|
||||||
@@ -68,27 +67,20 @@ LocalDevice::GetLocalDevice()
|
|||||||
LocalDevice*
|
LocalDevice*
|
||||||
LocalDevice::GetLocalDevice(hci_id hid)
|
LocalDevice::GetLocalDevice(hci_id hid)
|
||||||
{
|
{
|
||||||
if ((sfMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
||||||
request.AddInt32("hci_id", hid);
|
request.AddInt32("hci_id", hid);
|
||||||
|
|
||||||
return RequestLocalDeviceID(&request);
|
return RequestLocalDeviceID(&request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LocalDevice*
|
LocalDevice*
|
||||||
LocalDevice::GetLocalDevice(bdaddr_t bdaddr)
|
LocalDevice::GetLocalDevice(bdaddr_t bdaddr)
|
||||||
{
|
{
|
||||||
if ((sfMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
BMessage request(BT_MSG_ACQUIRE_LOCAL_DEVICE);
|
||||||
request.AddData("bdaddr", B_ANY_TYPE, &bdaddr, sizeof(bdaddr_t));
|
request.AddData("bdaddr", B_ANY_TYPE, &bdaddr, sizeof(bdaddr_t));
|
||||||
|
|
||||||
|
|
||||||
return RequestLocalDeviceID(&request);
|
return RequestLocalDeviceID(&request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,16 +88,21 @@ LocalDevice::GetLocalDevice(bdaddr_t bdaddr)
|
|||||||
uint32
|
uint32
|
||||||
LocalDevice::GetLocalDeviceCount()
|
LocalDevice::GetLocalDeviceCount()
|
||||||
{
|
{
|
||||||
if ((sfMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
BMessenger* messenger = _RetrieveBluetoothMessenger();
|
||||||
return 0;
|
uint32 count = 0;
|
||||||
|
|
||||||
|
if (messenger != NULL) {
|
||||||
|
|
||||||
BMessage request(BT_MSG_COUNT_LOCAL_DEVICES);
|
BMessage request(BT_MSG_COUNT_LOCAL_DEVICES);
|
||||||
BMessage reply;
|
BMessage reply;
|
||||||
|
|
||||||
if (sfMessenger->SendMessage(&request, &reply) == B_OK)
|
if (messenger->SendMessage(&request, &reply) == B_OK)
|
||||||
return reply.FindInt32("count");
|
count = reply.FindInt32("count");
|
||||||
else
|
|
||||||
return 0;
|
delete messenger;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +143,7 @@ LocalDevice::GetDiscoverable()
|
|||||||
status_t
|
status_t
|
||||||
LocalDevice::SetDiscoverable(int mode)
|
LocalDevice::SetDiscoverable(int mode)
|
||||||
{
|
{
|
||||||
if ((fMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
if (fMessenger == NULL)
|
||||||
return B_ERROR;
|
return B_ERROR;
|
||||||
|
|
||||||
BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST);
|
BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST);
|
||||||
@@ -184,7 +181,7 @@ LocalDevice::SetDiscoverable(int mode)
|
|||||||
bdaddr_t
|
bdaddr_t
|
||||||
LocalDevice::GetBluetoothAddress()
|
LocalDevice::GetBluetoothAddress()
|
||||||
{
|
{
|
||||||
if ((fMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
if (fMessenger == NULL)
|
||||||
return bdaddrUtils::NullAddress();
|
return bdaddrUtils::NullAddress();
|
||||||
|
|
||||||
const bdaddr_t* bdaddr;
|
const bdaddr_t* bdaddr;
|
||||||
@@ -214,7 +211,7 @@ LocalDevice::GetBluetoothAddress()
|
|||||||
BString
|
BString
|
||||||
LocalDevice::GetFriendlyName()
|
LocalDevice::GetFriendlyName()
|
||||||
{
|
{
|
||||||
if ((fMessenger = _RetrieveBluetoothMessenger()) == NULL)
|
if (fMessenger == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
BString friendlyname;
|
BString friendlyname;
|
||||||
@@ -258,7 +255,14 @@ LocalDevice::updateRecord(ServiceRecord srvRecord) {
|
|||||||
|
|
||||||
LocalDevice::LocalDevice(hci_id hid) : hid(hid)
|
LocalDevice::LocalDevice(hci_id hid) : hid(hid)
|
||||||
{
|
{
|
||||||
|
fMessenger = _RetrieveBluetoothMessenger();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LocalDevice::~LocalDevice()
|
||||||
|
{
|
||||||
|
if (fMessenger)
|
||||||
|
delete fMessenger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -38,21 +38,18 @@ RemoteDevice::GetFriendlyName(bool alwaysAsk)
|
|||||||
|
|
||||||
if (!alwaysAsk) {
|
if (!alwaysAsk) {
|
||||||
// Check if the name is already retrieved
|
// Check if the name is already retrieved
|
||||||
return BString("Not implemented");
|
|
||||||
|
|
||||||
// TODO: Check if It is known from a KnownDevicesList
|
// TODO: Check if It is known from a KnownDevicesList
|
||||||
|
return BString("Not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fDiscovererLocalDevice == NULL)
|
if (fDiscovererLocalDevice == NULL)
|
||||||
return BString("#NoOwnerError#Not Valid name");
|
return BString("#NoOwnerError#Not Valid name");
|
||||||
|
|
||||||
BMessenger* btsm = NULL;
|
if (fMessenger == NULL)
|
||||||
size_t size;
|
|
||||||
|
|
||||||
if ((btsm = _RetrieveBluetoothMessenger()) == NULL)
|
|
||||||
return BString("#ServerNotReady#Not Valid name");
|
return BString("#ServerNotReady#Not Valid name");
|
||||||
|
|
||||||
void* remoteNameCommand = NULL;
|
void* remoteNameCommand = NULL;
|
||||||
|
size_t size;
|
||||||
|
|
||||||
/* Issue inquiry command */
|
/* Issue inquiry command */
|
||||||
BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST);
|
BMessage request(BT_MSG_HANDLE_SIMPLE_REQUEST);
|
||||||
@@ -71,7 +68,7 @@ RemoteDevice::GetFriendlyName(bool alwaysAsk)
|
|||||||
request.AddInt16("eventExpected", HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE);
|
request.AddInt16("eventExpected", HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE);
|
||||||
|
|
||||||
|
|
||||||
if (btsm->SendMessage(&request, &reply) == B_OK)
|
if (fMessenger->SendMessage(&request, &reply) == B_OK)
|
||||||
{
|
{
|
||||||
BString name;
|
BString name;
|
||||||
int8 status;
|
int8 status;
|
||||||
@@ -155,12 +152,21 @@ RemoteDevice::SetLocalDeviceOwner(LocalDevice* ld)
|
|||||||
RemoteDevice::RemoteDevice(bdaddr_t address)
|
RemoteDevice::RemoteDevice(bdaddr_t address)
|
||||||
{
|
{
|
||||||
fBdaddr = address;
|
fBdaddr = address;
|
||||||
|
fMessenger = _RetrieveBluetoothMessenger();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
RemoteDevice::RemoteDevice(BString address)
|
RemoteDevice::RemoteDevice(BString address)
|
||||||
{
|
{
|
||||||
fBdaddr = bdaddrUtils::FromString((const char *)address.String());
|
fBdaddr = bdaddrUtils::FromString((const char *)address.String());
|
||||||
|
fMessenger = _RetrieveBluetoothMessenger();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RemoteDevice::~RemoteDevice()
|
||||||
|
{
|
||||||
|
if (fMessenger)
|
||||||
|
delete fMessenger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user