summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Close <benjamin.close@clearchain.com>2009-04-16 15:33:30 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-04-21 13:11:51 +1000
commit826a5bff0136b2b4d55a9e6e6bc3a7a64da9031e (patch)
treeb8add91f05025d005404fb800bffac255a6cc3b4
parente2e5932bda3f473629d4be6f3ca4dcab18993eb6 (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.c2
-rw-r--r--dix/devices.c18
-rw-r--r--include/input.h5
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);