1/* 2 * Copyright 2007-2008 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5#ifndef _DISCOVERY_AGENT_H 6#define _DISCOVERY_AGENT_H 7 8#include <bluetooth/bluetooth.h> 9#include <bluetooth/DiscoveryListener.h> 10#include <bluetooth/RemoteDevice.h> 11 12 13#define BT_CACHED 0x00 14#define BT_PREKNOWN 0x01 15#define BT_NOT_DISCOVERABLE 0x01 16 17#define BT_GIAC 0x9E8B33 18#define BT_LIAC 0x9E8B00 19 20#define BT_MAX_RESPONSES (32) 21 22#define BT_BASE_INQUIRY_TIME (1.28) 23#define BT_DEFAULT_INQUIRY_TIME (0x0A) 24#define BT_MIN_INQUIRY_TIME (0x01) // 1.18 secs 25#define BT_MAX_INQUIRY_TIME (0x30) // 61.44 secs 26 27namespace Bluetooth { 28 29class LocalDevice; 30 31class DiscoveryAgent { 32 33public: 34 35 static const int GIAC = BT_GIAC; 36 static const int LIAC = BT_LIAC; 37 38 static const int PREKNOWN = BT_PREKNOWN; 39 static const int CACHED = BT_CACHED; 40 static const int NOT_DISCOVERABLE = BT_NOT_DISCOVERABLE; 41 42 RemoteDevicesList RetrieveDevices(int option); /* TODO */ 43 status_t StartInquiry(int accessCode, DiscoveryListener* listener); /* Throwing */ 44 status_t StartInquiry(uint32 accessCode, DiscoveryListener* listener, bigtime_t secs); 45 status_t CancelInquiry(DiscoveryListener* listener); 46 47 /* 48 int searchServices(int[] attrSet, UUID[] uuidSet, RemoteDevice btDev, 49 DiscoveryListener discListener); 50 51 bool cancelServiceSearch(int transID); 52 BString selectService(UUID uuid, int security, boolean master); 53 */ 54 55private: 56 DiscoveryAgent(LocalDevice* ld); 57 ~DiscoveryAgent(); 58 void SetLocalDeviceOwner(LocalDevice* ld); 59 60 DiscoveryListener* fLastUsedListener; 61 LocalDevice* fLocalDevice; 62 BMessenger* fMessenger; 63 64 friend class LocalDevice; 65}; 66 67} 68 69#ifndef _BT_USE_EXPLICIT_NAMESPACE 70using Bluetooth::DiscoveryAgent; 71#endif 72 73#endif // _DISCOVERY_AGENT_H 74