summaryrefslogtreecommitdiff
path: root/sapbtpeer.h
blob: da77f2261771a6b4abd249e1f7a3d43296cb2037 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef SAPBTPEER_H
#define SAPBTPEER_H

#include <QtCore/QObject>

#if QT_VERSION >= QT_VERSION_CHECK(5,2,0)
#include <QtBluetooth/QBluetoothSocket>
#elif QT_VERSION >= QT_VERSION_CHECK(5,0,0)
#include <QtBluetooth/QBluetoothSocket>
QT_USE_NAMESPACE_BLUETOOTH
#else
#include <QtConnectivity/QBluetoothSocket>
QTM_USE_NAMESPACE
#endif

#include "sappeer.h"

class SAPBTPeer : public SAPPeer
{
	Q_OBJECT

public:
	SAPBTPeer(SAProtocol::Role role, QBluetoothSocket *socket, QObject *parent = 0);

protected:
	void sendFrame(const QByteArray &data);

private slots:
	void handleSocketData();
	void handleSocketDisconnected();

private:
	void handleFrame(const QByteArray &data);
	void handleDataFrame(const SAProtocol::Frame &frame);
	void handleAuthenticationFrame(const QByteArray &data);

private:
	QBluetoothSocket *_socket;
	uint _curFrameLength;
	bool _peerDescriptionExchangeDone : 1;
	bool _authenticationDone : 1;
};

#endif // SAPBTPEER_H