blob: 45057b5ea1ce4cbe045338edcfa67249b6d9fd37 [file] [log] [blame]
#ifndef VNCFLINGER_H
#define VNCFLINGER_H
#include "EventQueue.h"
#include "VirtualDisplay.h"
#include <ui/DisplayInfo.h>
#include "rfb/rfb.h"
#define VNC_PORT 5901
namespace android {
class VNCFlinger : public EventListener {
public:
VNCFlinger(int argc, char **argv) :
mArgc(argc),
mArgv(argv),
mClientCount(0) {
}
virtual void onEvent(const Event& event);
virtual status_t start();
virtual status_t stop();
static EventQueue *sQueue;
private:
virtual status_t setup_l();
virtual void release_l();
static ClientGoneHookPtr onClientGone(rfbClientPtr cl);
static enum rfbNewClientAction onNewClient(rfbClientPtr cl);
static void rfbLogger(const char *format, ...);
rfbScreenInfoPtr mVNCScreen;
uint8_t *mVNCBuf;
uint32_t mWidth, mHeight;
bool mRotate;
sp<IBinder> mMainDpy;
DisplayInfo mMainDpyInfo;
Mutex mMutex;
sp<VirtualDisplay> mVirtualDisplay;
int mArgc;
char **mArgv;
size_t mClientCount;
};
};
#endif