diff options
Diffstat (limited to 'src/xNestedMouse.c')
| -rw-r--r-- | src/xNestedMouse.c | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/src/xNestedMouse.c b/src/xNestedMouse.c deleted file mode 100644 index 05b4e27..0000000 --- a/src/xNestedMouse.c +++ /dev/null @@ -1,272 +0,0 @@ -#include <errno.h> -#include <fcntl.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> - -#include <xorg/xorg-server.h> -#include <xorg/fb.h> -#include <xorg/micmap.h> -#include <xorg/mipointer.h> -#include <xorg/shadow.h> -#include <xorg/xf86.h> -#include <xorg/xf86Module.h> -#include <xorg/xf86str.h> - -#include "config.h" - -#include "client.h" - -#include "xNestedMouse.h" - -#define SYSCALL(call) while (((call) == -1) && (errno == EINTR)) - -static pointer NestedMousePlug(pointer module, pointer options, int *errmaj, int *errmin); -static void NestedMouseUnplug(pointer p); -static void NestedMouseReadInput(InputInfoPtr pInfo); -static int NestedMouseControl(DeviceIntPtr device,int what); -static int _nested_mouse_init_buttons(DeviceIntPtr device); -static int _nested_mouse_init_axes(DeviceIntPtr device); - -typedef struct _NestedMouseDeviceRec { - char *device; - int version; /* Driver version */ - Atom* labels; - int num_vals; - int axes; -} NestedMouseDeviceRec, *NestedMouseDevicePtr; - -static XF86ModuleVersionInfo NestedMouseVersionRec = { - "nestedmouse", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, - PACKAGE_VERSION_PATCHLEVEL, - ABI_CLASS_XINPUT, - ABI_XINPUT_VERSION, - MOD_CLASS_XINPUT, - {0, 0, 0, 0} -}; - -_X_EXPORT XF86ModuleData nestedMouseModuleData = { - &NestedMouseVersionRec, - &NestedMousePlug, - &NestedMouseUnplug -}; - -InputInfoPtr -NestedMousePreInit(InputDriverPtr drv, IDevPtr dev, int flags) { - InputInfoPtr pInfo; - NestedMouseDevicePtr pNestedMouse; - - if (!(pInfo = xf86AllocateInput(drv, 0))) - return NULL; - - pNestedMouse = xcalloc(1, sizeof(NestedMouseDeviceRec)); - - if (!pNestedMouse) { - pInfo->private = NULL; - xf86DeleteInput(pInfo, 0); - return NULL; - } - - pInfo->private = pNestedMouse; - pInfo->name = xstrdup(dev->identifier); - pInfo->flags = 0; - pInfo->type_name = XI_MOUSE; /* see XI.h */ - pInfo->conf_idev = dev; - pInfo->read_input = NestedMouseReadInput; /* new data avl */ - pInfo->switch_mode = NULL; /* toggle absolute/relative mode */ - pInfo->device_control = NestedMouseControl; /* enable/disable dev */ - - /* process driver specific options */ - pNestedMouse->device = xf86SetStrOption(dev->commonOptions, - "Device", - "/dev/random"); - - xf86Msg(X_INFO, "%s: Using device %s.\n", pInfo->name, pNestedMouse->device); - - /* process generic options */ - xf86CollectInputOptions(pInfo, NULL, NULL); - xf86ProcessCommonOptions(pInfo, pInfo->options); - - /* Open sockets, init device files, etc. */ - SYSCALL(pInfo->fd = open(pNestedMouse->device, O_RDWR | O_NONBLOCK)); - - if (pInfo->fd == -1) { - xf86Msg(X_ERROR, "%s: failed to open %s.", - pInfo->name, pNestedMouse->device); - - pInfo->private = NULL; - - xfree(pNestedMouse); - xf86DeleteInput(pInfo, 0); - - return NULL; - } - - pInfo->flags |= XI86_OPEN_ON_INIT; - pInfo->flags |= XI86_CONFIGURED; - return pInfo; -} - -void -NestedMouseUnInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) { -} - -static pointer -NestedMousePlug(pointer module, pointer options, int *errmaj, int *errmin) { - //xf86AddInputDriver(&NESTEDMOUSE, module, 0); - return module; -} - -static void -NestedMouseUnplug(pointer p) { -} - -static int -_nested_mouse_init_buttons(DeviceIntPtr device) { - -InputInfoPtr pInfo = device->public.devicePrivate; - CARD8 *map; - int i; - int ret = Success; - const int num_buttons = 2; - - Atom btn_labels[2] = {0}; - - btn_labels[0] = "left"; - btn_labels[1] = "right"; - - map = xcalloc(num_buttons, sizeof(CARD8)); - - for (i = 0; i < num_buttons; i++) - map[i] = i; - - if (!InitButtonClassDeviceStruct(device, num_buttons, btn_labels, map)) { - xf86Msg(X_ERROR, "%s: Failed to register buttons.\n", pInfo->name); - ret = BadAlloc; - } - - - if (!InitKeyboardDeviceStruct(device, NULL, NULL, NULL)) { - xf86Msg(X_ERROR, "%s: Failed to register keyboard.\n", pInfo->name); - ret = BadAlloc; - } - - xfree(map); - return ret; -return -1; -} - -static int -_nested_mouse_init_axes(DeviceIntPtr device) { - InputInfoPtr pInfo = device->public.devicePrivate; - int i; - const int num_axes = 2; - - if (!InitValuatorClassDeviceStruct(device, - num_axes, - GetMotionHistory, - GetMotionHistorySize(), - 0)) - return BadAlloc; - - pInfo->dev->valuator->mode = Relative; - if (!InitAbsoluteClassDeviceStruct(device)) - return BadAlloc; - - for (i = 0; i < 2; i++) { - xf86InitValuatorAxisStruct(device, i, "", -1, -1, 1, 1, 1); - xf86InitValuatorDefaults(device, i); - } - - return Success; - return -1; -} - -static int -NestedMouseControl(DeviceIntPtr device, int what) { - InputInfoPtr pInfo = device->public.devicePrivate; - NestedMouseDevicePtr pNestedMouse = pInfo->private; - - switch (what) { - case DEVICE_INIT: - _nested_mouse_init_buttons(device); - _nested_mouse_init_axes(device); - break; - case DEVICE_ON: - xf86Msg(X_INFO, "%s: On.\n", pInfo->name); - if (device->public.on) - break; - xf86FlushInput(pInfo->fd); - xf86AddEnabledDevice(pInfo); - device->public.on = TRUE; - break; - case DEVICE_OFF: - xf86Msg(X_INFO, "%s: Off.\n", pInfo->name); - if (!device->public.on) - break; - xf86RemoveEnabledDevice(pInfo); - pInfo->fd = -1; - device->public.on = FALSE; - break; - case DEVICE_CLOSE: - /* free what we have to free */ - break; - } - - return Success; -} - -static void -NestedMouseReadInput(InputInfoPtr pInfo) { -} - -//Helper func to load mouse driver at the init of nested video driver -void Load_Nested_Mouse(NestedClientPrivatePtr clientData) { - xf86Msg(X_INFO, "NESTED MOUSE LOADING\n"); - - //xf86AddInputDriver(&NESTEDMOUSE, module, 0); - - // Create input options for our invocation to NewInputDeviceRequest(). - InputOption* options = (InputOption*)xalloc(sizeof(InputOption)); - - options->key = "driver"; - options->value = "nestedmouse"; - - options->next = (InputOption*)xalloc(sizeof(InputOption)); - - options->next->key = "identifier"; - options->next->value = "nestedmouse"; - options->next->next = NULL; - - DeviceIntPtr dev; - int ret = NewInputDeviceRequest(options, NULL, &dev); - - if (ret != Success) { - xf86Msg(X_ERROR, "Failed to load input driver.\n"); - } - - NestedMouseControl(dev, DEVICE_ON); - - InputInfoPtr pInfo = dev->public.devicePrivate; - - NestedClientSetDevicePtr(clientData, pInfo->dev); - - xf86Msg(X_INFO, "NESTED MOUSE LOADING DONE\n"); -} - -void NestedPostMouseMotion(void* dev, int x, int y) { - xf86PostMotionEvent(dev, TRUE, 0, 2, x, y); -} - -void NestedPostMouseButton(void* dev, int button, int isDown) { - xf86PostButtonEvent(dev, 0, button, isDown, 0, 0); -} - -void NestedPostKey(void* dev, unsigned int keycode, int isDown) { - xf86PostKeyboardEvent(dev, keycode, isDown); -} |
