Sync with trunk (r48545)
[reactos.git] / drivers / bluetooth / fbtusb / include / fbtHciRoundTrip.h
1 #ifndef _ROUND_TRIP_HCI_H_
2 #define _ROUND_TRIP_HCI_H_
3
4 #include "fbtHciLocal.h"
5
6 // Complete round trip HCI abstraction
7 // 1. Send Command
8 // 2. Wait for Command status / Command complete
9 // 3. Wait fo event
10 class CHciRoundTrip : public CHciLocal
11 {
12 public:
13
14 CHciRoundTrip();
15 virtual ~CHciRoundTrip();
16
17 virtual DWORD QueueEvent(BYTE EventCode, LPVOID pParameters, DWORD dwParameterLength);
18 virtual DWORD WaitForEvent();
19
20 virtual DWORD OnEvent(PFBT_HCI_EVENT_HEADER pEvent, DWORD Length);
21
22 virtual DWORD ReadBDADDR(BYTE *BDADDR);
23 virtual DWORD ReadClassOfDevice(BYTE *ClassOfDevice);
24 virtual DWORD ReadLocalName(BYTE *Name);
25 virtual DWORD CreateConnection(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE],
26 USHORT PacketType,
27 BYTE PageScanRepetitionMode,
28 BYTE PageScanMode,
29 USHORT ClockOffset,
30 BYTE AllowRoleSwitch,
31 USHORT &ConnectionHandle);
32
33 virtual DWORD Disconnect(USHORT ConnectionHandler, BYTE Reason);
34 virtual DWORD SwitchRole(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE Role);
35 virtual DWORD RemoteNameRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE],
36 BYTE PageScanRepetitionMode,
37 BYTE PageScanMode,
38 USHORT ClockOffset,
39 BYTE Name[FBT_HCI_NAME_SIZE]);
40
41 protected:
42 BYTE m_PendingEvent;
43 LPVOID m_pEventParameters;
44 DWORD m_dwEventParameterLength;
45
46 HANDLE m_hEventSignal;
47
48 };
49
50
51 #endif // _ROUND_TRIP_HCI_H_