Improved ManyMouse handling.

This commit is contained in:
n-a-c-h
2006-03-25 20:29:56 +00:00
parent 88a9e638e6
commit 66dfc17b5c

View File

@@ -452,9 +452,6 @@ unsigned short MouseMoveX[2];
unsigned short MouseMoveY[2];
unsigned short MouseButton[2];
bool MouseWaiting[2];
ManyMouseEvent MouseEvent[2];
void MultiMouseShutdown()
{
MouseCount = 0;
@@ -470,7 +467,6 @@ void MultiMouseInit()
MouseMoveX[0] = MouseMoveX[1] = 0;
MouseMoveY[0] = MouseMoveY[1] = 0;
MouseButton[0] = MouseButton[1] = 0;
MouseWaiting[0] = MouseWaiting[1] = false;
atexit(MultiMouseShutdown);
printf("Using ManyMouse for:\nMouse 0: %s\nMouse 1: %s\n", ManyMouse_DeviceName(0), ManyMouse_DeviceName(1));
@@ -490,53 +486,25 @@ unsigned char mouse;
void MultiMouseProcess()
{
ManyMouseEvent event;
event.device = ~0;
MouseMoveX[mouse] = 0;
MouseMoveY[mouse] = 0;
if (MouseWaiting[mouse])
while (ManyMouse_PollEvent(&event))
{
if (MouseEvent[mouse].type == MANYMOUSE_EVENT_RELMOTION)
if ((event.device == 0) || (event.device == 1))
{
if (MouseEvent[mouse].item == 0) { MouseMoveX[mouse] = MouseEvent[mouse].value; }
else { MouseMoveY[mouse] = MouseEvent[mouse].value; }
}
else if (MouseEvent[mouse].type == MANYMOUSE_EVENT_BUTTON)
{
if (MouseEvent[mouse].item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, MouseEvent[mouse].value); }
else if (MouseEvent[mouse].item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, MouseEvent[mouse].value); }
}
MouseWaiting[mouse] = false;
return;
}
while ((event.device != 0) && (event.device != 1))
{
if (!ManyMouse_PollEvent(&event))
{
return;
}
if (event.device == (mouse^1))
{
MouseEvent[event.device] = event;
MouseWaiting[event.device] = true;
event.device = ~0;
}
}
if (event.type == MANYMOUSE_EVENT_RELMOTION)
{
if (event.item == 0) { MouseMoveX[mouse] = event.value; }
else { MouseMoveY[mouse] = event.value; }
if (event.item == 0) { MouseMoveX[event.device] = event.value; }
else { MouseMoveY[event.device] = event.value; }
}
else if (event.type == MANYMOUSE_EVENT_BUTTON)
{
if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 0, event.value); }
else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[mouse], 1, event.value); }
if (event.item == 0) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 0, event.value); }
else if (event.item == 1) { MOUSE_BUTTON_HANDLE(MouseButton[event.device], 1, event.value); }
}
}
}
}
#endif