Update for latest TigerVNC
diff --git a/src/AndroidDesktop.cpp b/src/AndroidDesktop.cpp
index 72c5896..7539c69 100644
--- a/src/AndroidDesktop.cpp
+++ b/src/AndroidDesktop.cpp
@@ -141,8 +141,8 @@
return rfb::Point(mPixels->width(), mPixels->height());
}
-void AndroidDesktop::keyEvent(rdr::U32 key, bool down) {
- mInputDevice->keyEvent(down, key);
+void AndroidDesktop::keyEvent(rdr::U32 keysym, __unused_attr rdr::U32 keycode, bool down) {
+ mInputDevice->keyEvent(down, keysym);
}
void AndroidDesktop::pointerEvent(const rfb::Point& pos, int buttonMask) {
@@ -190,3 +190,11 @@
screens.add_screen(rfb::Screen(0, 0, 0, mPixels->width(), mPixels->height(), 0));
mServer->setScreenLayout(screens);
}
+
+void AndroidDesktop::queryConnection(network::Socket* sock, __unused_attr const char* userName) {
+ mServer->approveConnection(sock, true, NULL);
+}
+
+void AndroidDesktop::terminate() {
+ kill(getpid(), SIGTERM);
+}
diff --git a/src/AndroidDesktop.h b/src/AndroidDesktop.h
index 768c27c..93a6610 100644
--- a/src/AndroidDesktop.h
+++ b/src/AndroidDesktop.h
@@ -34,11 +34,12 @@
virtual void start(rfb::VNCServer* vs);
virtual void stop();
+ virtual void terminate();
virtual rfb::Point getFbSize();
virtual unsigned int setScreenLayout(int fb_width, int fb_height, const rfb::ScreenSet& layout);
- virtual void keyEvent(rdr::U32 key, bool down);
+ virtual void keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down);
virtual void pointerEvent(const rfb::Point& pos, int buttonMask);
virtual void processFrames();
@@ -51,6 +52,8 @@
virtual void onFrameAvailable(const BufferItem& item);
+ virtual void queryConnection(network::Socket* sock, const char* userName);
+
private:
virtual void notify();
diff --git a/src/main.cpp b/src/main.cpp
index 831268d..251edf6 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -12,6 +12,7 @@
#include <network/Socket.h>
#include <network/TcpSocket.h>
#include <rfb/Configuration.h>
+#include <rfb/LogWriter.h>
#include <rfb/Logger_android.h>
#include <rfb/VNCServerST.h>
#include <rfb/util.h>
@@ -75,7 +76,7 @@
sp<ProcessState> self = ProcessState::self();
self->startThreadPool();
- std::list<network::TcpListener*> listeners;
+ std::list<network::SocketListener*> listeners;
try {
sp<AndroidDesktop> desktop = new AndroidDesktop();
@@ -98,7 +99,7 @@
FD_ZERO(&wfds);
FD_SET(eventFd, &rfds);
- for (std::list<network::TcpListener*>::iterator i = listeners.begin();
+ for (std::list<network::SocketListener*>::iterator i = listeners.begin();
i != listeners.end(); i++)
FD_SET((*i)->getFd(), &rfds);
@@ -117,7 +118,7 @@
wait_ms = 0;
- rfb::soonestTimeout(&wait_ms, server.checkTimeouts());
+ rfb::soonestTimeout(&wait_ms, rfb::Timer::checkTimeouts());
tv.tv_sec = wait_ms / 1000;
tv.tv_usec = (wait_ms % 1000) * 1000;
@@ -134,7 +135,7 @@
}
// Accept new VNC connections
- for (std::list<network::TcpListener*>::iterator i = listeners.begin();
+ for (std::list<network::SocketListener*>::iterator i = listeners.begin();
i != listeners.end(); i++) {
if (FD_ISSET((*i)->getFd(), &rfds)) {
network::Socket* sock = (*i)->accept();
@@ -147,7 +148,7 @@
}
}
- server.checkTimeouts();
+ rfb::Timer::checkTimeouts();
// Client list could have been changed.
server.getSockets(&sockets);