aboutsummaryrefslogtreecommitdiffstats
path: root/unix/xserver/hw/vnc/xf86vncModule.cc
diff options
context:
space:
mode:
authorAdam Tkac <atkac@redhat.com>2008-03-21 18:56:48 +0000
committerAdam Tkac <atkac@redhat.com>2008-03-21 18:56:48 +0000
commit4c0427ffb370b5020a6f82456106774b6711ddd4 (patch)
tree20e0eb1d073746e04d953b488618573de14abbf6 /unix/xserver/hw/vnc/xf86vncModule.cc
parentbee114ae5e69b10e132c5d6d680045d9165e5a90 (diff)
downloadtigervnc-4c0427ffb370b5020a6f82456106774b6711ddd4.tar.gz
tigervnc-4c0427ffb370b5020a6f82456106774b6711ddd4.zip
- moved Xvnc sources to unix/xserver/hw/vnc directory to affect current X tree
- replaced unix/xc.patch by unix/xserver.patch - completely deleted unneded unix/xc subtree (sources are in unix/xserver/hw/vnc) git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/1.5-xserver@2439 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'unix/xserver/hw/vnc/xf86vncModule.cc')
-rw-r--r--unix/xserver/hw/vnc/xf86vncModule.cc97
1 files changed, 97 insertions, 0 deletions
diff --git a/unix/xserver/hw/vnc/xf86vncModule.cc b/unix/xserver/hw/vnc/xf86vncModule.cc
new file mode 100644
index 00000000..ef8ea506
--- /dev/null
+++ b/unix/xserver/hw/vnc/xf86vncModule.cc
@@ -0,0 +1,97 @@
+/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * USA.
+ */
+/* This is the xf86 module code for the vnc extension.
+ */
+
+#include <rfb/Configuration.h>
+#include <rfb/Logger_stdio.h>
+#include <rfb/LogWriter.h>
+
+extern "C" {
+#define class c_class
+#define private c_private
+#define bool c_bool
+#define new c_new
+#include "xf86.h"
+#include "xf86Module.h"
+#undef class
+#undef private
+#undef bool
+#undef new
+
+using namespace rfb;
+
+extern void vncExtensionInit();
+static void vncExtensionInitWithParams(INITARGS);
+
+#ifdef XFree86LOADER
+
+static MODULESETUPPROTO(vncSetup);
+
+ExtensionModule vncExt =
+{
+ vncExtensionInitWithParams,
+ "VNC",
+ NULL,
+ NULL,
+ NULL
+};
+
+static XF86ModuleVersionInfo vncVersRec =
+{
+ "vnc",
+ "Constantin Kaplinsky",
+ MODINFOSTRING1,
+ MODINFOSTRING2,
+ XF86_VERSION_CURRENT,
+ 1, 0, 0,
+ ABI_CLASS_EXTENSION, /* needs the server extension ABI */
+ ABI_EXTENSION_VERSION,
+ MOD_CLASS_EXTENSION,
+ {0,0,0,0}
+};
+
+XF86ModuleData vncModuleData = { &vncVersRec, vncSetup, NULL };
+
+static pointer
+vncSetup(pointer module, pointer opts, int *errmaj, int *errmin) {
+ LoadExtension(&vncExt, FALSE);
+ /* Need a non-NULL return value to indicate success */
+ return (pointer)1;
+}
+
+static void vncExtensionInitWithParams(INITARGS)
+{
+ rfb::initStdIOLoggers();
+ rfb::LogWriter::setLogParams("*:stderr:30");
+
+ for (int scr = 0; scr < screenInfo.numScreens; scr++) {
+ ScrnInfoPtr pScrn = xf86Screens[scr];
+
+ for (ParameterIterator i(Configuration::global()); i.param; i.next()) {
+ char* val = xf86FindOptionValue(pScrn->options, i.param->getName());
+ if (val)
+ i.param->setParam(val);
+ }
+ }
+
+ vncExtensionInit();
+}
+
+#endif /* XFree86LOADER */
+}