blob: 45057b5ea1ce4cbe045338edcfa67249b6d9fd37 [file] [log] [blame]
Steve Kondik55db0532017-06-12 11:27:18 -07001#ifndef VNCFLINGER_H
2#define VNCFLINGER_H
3
4#include "EventQueue.h"
5#include "VirtualDisplay.h"
6
7#include <ui/DisplayInfo.h>
8
9#include "rfb/rfb.h"
10
11#define VNC_PORT 5901
12
13namespace android {
14
15class VNCFlinger : public EventListener {
16public:
17 VNCFlinger(int argc, char **argv) :
18 mArgc(argc),
19 mArgv(argv),
20 mClientCount(0) {
21 }
22
23 virtual void onEvent(const Event& event);
24
25 virtual status_t start();
26 virtual status_t stop();
27
28 static EventQueue *sQueue;
29
30private:
31 virtual status_t setup_l();
32 virtual void release_l();
33
34 static ClientGoneHookPtr onClientGone(rfbClientPtr cl);
35 static enum rfbNewClientAction onNewClient(rfbClientPtr cl);
36 static void rfbLogger(const char *format, ...);
37
38 rfbScreenInfoPtr mVNCScreen;
39 uint8_t *mVNCBuf;
40
41 uint32_t mWidth, mHeight;
42 bool mRotate;
43
44 sp<IBinder> mMainDpy;
45 DisplayInfo mMainDpyInfo;
46
47 Mutex mMutex;
48
49 sp<VirtualDisplay> mVirtualDisplay;
50
51 int mArgc;
52 char **mArgv;
53
54 size_t mClientCount;
55};
56
57};
58#endif