diff options
author | Benjamin Close <benjamin.close@clearchain.com> | 2009-04-16 15:33:30 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2009-04-21 13:11:51 +1000 |
commit | 826a5bff0136b2b4d55a9e6e6bc3a7a64da9031e (patch) | |
tree | b8add91f05025d005404fb800bffac255a6cc3b4 | |
parent | e2e5932bda3f473629d4be6f3ca4dcab18993eb6 (diff) |
dix: Change AllocMaster into AllocDevicePair, allow creation of SDs too.
Allocating a slave device is essentially the same as allocating a master device.
Hence we rename AllocMaster to AllocDevicePair and provided the ability to
indicate if a master or slave device pair is required.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | Xi/chdevhier.c | 2 | ||||
-rw-r--r-- | dix/devices.c | 18 | ||||
-rw-r--r-- | include/input.h | 5 |
3 files changed, 15 insertions, 10 deletions
diff --git a/Xi/chdevhier.c b/Xi/chdevhier.c index 9a8582916..5c8b36906 100644 --- a/Xi/chdevhier.c +++ b/Xi/chdevhier.c @@ -108,7 +108,7 @@ ProcXChangeDeviceHierarchy(ClientPtr client) strncpy(name, (char*)&c[1], c->namelen); - rc = AllocMasterDevice(client, name, &ptr, &keybd); + rc = AllocDevicePair(client, name, &ptr, &keybd, TRUE); if (rc != Success) { xfree(name); diff --git a/dix/devices.c b/dix/devices.c index 9f56842f6..bbddf3bc1 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -545,9 +545,9 @@ CorePointerProc(DeviceIntPtr pDev, int what) void InitCoreDevices(void) { - if (AllocMasterDevice(serverClient, "Virtual core", - &inputInfo.pointer, - &inputInfo.keyboard) != Success) + if (AllocDevicePair(serverClient, "Virtual core", + &inputInfo.pointer, &inputInfo.keyboard, + TRUE) != Success) FatalError("Failed to allocate core devices"); if (ActivateDevice(inputInfo.pointer) != Success || @@ -2270,12 +2270,16 @@ GetPairedDevice(DeviceIntPtr dev) /** - * Create a new master device (== one pointer, one keyboard device). + * Create a new device pair (== one pointer, one keyboard device). * Only allocates the devices, you will need to call ActivateDevice() and * EnableDevice() manually. + * Either a master or a slave device can be created depending on + * the value for master. */ int -AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr* keybd) +AllocDevicePair (ClientPtr client, char* name, + DeviceIntPtr* ptr, DeviceIntPtr* keybd, + Bool master) { DeviceIntPtr pointer; DeviceIntPtr keyboard; @@ -2299,7 +2303,7 @@ AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr* pointer->spriteInfo->spriteOwner = TRUE; pointer->u.lastSlave = NULL; - pointer->isMaster = TRUE; + pointer->isMaster = master; keyboard = AddInputDevice(client, CoreKeyboardProc, TRUE); if (!keyboard) @@ -2321,7 +2325,7 @@ AllocMasterDevice(ClientPtr client, char* name, DeviceIntPtr* ptr, DeviceIntPtr* keyboard->spriteInfo->spriteOwner = FALSE; keyboard->u.lastSlave = NULL; - keyboard->isMaster = TRUE; + keyboard->isMaster = master; /* The ClassesRec stores the device classes currently not used. */ diff --git a/include/input.h b/include/input.h index 76519198e..b3bb5d1a5 100644 --- a/include/input.h +++ b/include/input.h @@ -468,10 +468,11 @@ extern _X_EXPORT int AttachDevice(ClientPtr client, extern _X_EXPORT DeviceIntPtr GetPairedDevice(DeviceIntPtr kbd); -extern _X_EXPORT int AllocMasterDevice(ClientPtr client, +extern _X_EXPORT int AllocDevicePair(ClientPtr client, char* name, DeviceIntPtr* ptr, - DeviceIntPtr* keybd); + DeviceIntPtr* keybd, + Bool master); extern _X_EXPORT void DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to); |