Polling input mode for the kdrive os layer. And a moose!

This commit is contained in:
Jaymz Julian 2004-02-05 09:09:51 +00:00
parent af798d2774
commit bd20c8d340
5 changed files with 18 additions and 4 deletions

View File

@ -306,6 +306,7 @@ KdOsFuncs ItsyOsFuncs = {
ItsyOsSpecialKey, ItsyOsSpecialKey,
ItsyOsDisable, ItsyOsDisable,
ItsyOsFini, ItsyOsFini,
0
}; };
void void

View File

@ -471,6 +471,7 @@ KdOsFuncs LinuxFuncs = {
LinuxSpecialKey, LinuxSpecialKey,
LinuxDisable, LinuxDisable,
LinuxFini, LinuxFini,
0
}; };
void void

View File

@ -276,6 +276,7 @@ typedef struct _KdOsFuncs {
Bool (*SpecialKey) (KeySym); Bool (*SpecialKey) (KeySym);
void (*Disable) (void); void (*Disable) (void);
void (*Fini) (void); void (*Fini) (void);
void (*pollEvents) (void);
} KdOsFuncs; } KdOsFuncs;
typedef enum _KdSyncPolarity { typedef enum _KdSyncPolarity {

View File

@ -1468,7 +1468,8 @@ KdBlockHandler (int screen,
pointer readmask) pointer readmask)
{ {
KdMouseInfo *mi; KdMouseInfo *mi;
int myTimeout=0;
for (mi = kdMouseInfo; mi; mi = mi->next) for (mi = kdMouseInfo; mi; mi = mi->next)
{ {
if (mi->timeoutPending) if (mi->timeoutPending)
@ -1476,11 +1477,20 @@ KdBlockHandler (int screen,
int ms; int ms;
ms = mi->emulationTimeout - GetTimeInMillis (); ms = mi->emulationTimeout - GetTimeInMillis ();
if (ms < 0) if (ms < 1)
ms = 0; ms = 1;
AdjustWaitForDelay (timeout, ms); if(ms<myTimeout || myTimeout==0)
myTimeout=ms;
} }
} }
/* if we need to poll for events, do that */
if(kdOsFuncs->pollEvents)
{
(*kdOsFuncs->pollEvents)();
myTimeout=20;
}
if(myTimeout>0)
AdjustWaitForDelay (timeout, myTimeout);
} }
void void

View File

@ -59,6 +59,7 @@ KdOsFuncs VxWorksFuncs = {
VxWorksSpecialKey, VxWorksSpecialKey,
VxWorksDisable, VxWorksDisable,
VxWorksFini, VxWorksFini,
0
}; };
void void