/* * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com * All rights reserved. Distributed under the terms of the MIT License. */ #ifndef _LOCAL_DEVICE_H #define _LOCAL_DEVICE_H #include #include #include #include #include #include #include namespace Bluetooth { class DiscoveryAgent; class LocalDevice : public BluetoothDevice { public: /* Possible throwing */ static LocalDevice* GetLocalDevice(); static uint32 GetLocalDeviceCount(); static LocalDevice* GetLocalDevice(const hci_id hid); static LocalDevice* GetLocalDevice(const bdaddr_t bdaddr); DiscoveryAgent* GetDiscoveryAgent(); BString GetFriendlyName(); status_t SetFriendlyName(BString& name); DeviceClass GetDeviceClass(); status_t SetDeviceClass(DeviceClass deviceClass); /* Possible throwing */ status_t SetDiscoverable(int mode); status_t SetAuthentication(bool authentication); BString GetProperty(const char* property); status_t GetProperty(const char* property, uint32* value); int GetDiscoverable(); bdaddr_t GetBluetoothAddress(); /* ServiceRecord getRecord(Connection notifier); void updateRecord(ServiceRecord srvRecord); */ hci_id ID() const; private: LocalDevice(hci_id hid); virtual ~LocalDevice(); status_t _ReadLocalVersion(); status_t _ReadBufferSize(); status_t _ReadLocalFeatures(); status_t _ReadTimeouts(); status_t _ReadLinkKeys(); status_t Reset(); static LocalDevice* RequestLocalDeviceID(BMessage* request); BMessenger* fMessenger; hci_id fHid; friend class DiscoveryAgent; friend class RemoteDevice; friend class PincodeWindow; }; } #ifndef _BT_USE_EXPLICIT_NAMESPACE using Bluetooth::LocalDevice; #endif #endif // _LOCAL_DEVICE_H