mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-14 13:07:54 +00:00
[host] windows: implement KVMFR_FEATURE_SETCURSORPOS
This commit is contained in:
parent
afbee641b1
commit
2856928b57
4 changed files with 41 additions and 3 deletions
|
@ -44,3 +44,5 @@ const char * os_getDataPath();
|
|||
void os_showMessage(const char * caption, const char * msg);
|
||||
|
||||
bool os_blockScreensaver();
|
||||
bool os_hasSetCursorPos(void);
|
||||
void os_setCursorPos(int x, int y);
|
||||
|
|
|
@ -86,3 +86,12 @@ void os_showMessage(const char * caption, const char * msg)
|
|||
{
|
||||
DEBUG_INFO("%s: %s", caption, msg);
|
||||
}
|
||||
|
||||
bool os_hasSetCursorPos(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void os_setCursorPos(int x, int y)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -573,3 +573,13 @@ void os_showMessage(const char * caption, const char * msg)
|
|||
{
|
||||
MessageBoxA(NULL, msg, caption, MB_OK | MB_ICONINFORMATION);
|
||||
}
|
||||
|
||||
bool os_hasSetCursorPos(void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void os_setCursorPos(int x, int y)
|
||||
{
|
||||
SetCursorPos(x, y);
|
||||
}
|
||||
|
|
|
@ -147,6 +147,22 @@ static bool lgmpTimer(void * opaque)
|
|||
return false;
|
||||
}
|
||||
|
||||
uint8_t data[LGMP_MSGS_SIZE];
|
||||
size_t size;
|
||||
while((status = lgmpHostReadData(app.pointerQueue, &data, &size)) == LGMP_OK)
|
||||
{
|
||||
KVMFRMessage *msg = (KVMFRMessage *)data;
|
||||
switch(msg->type)
|
||||
{
|
||||
case KVMFR_MESSAGE_SETCURSORPOS:
|
||||
{
|
||||
KVMFRSetCursorPos *sp = (KVMFRSetCursorPos *)msg;
|
||||
os_setCursorPos(sp->x, sp->y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -547,6 +563,7 @@ int app_main(int argc, char * argv[])
|
|||
KVMFR udata = {
|
||||
.magic = KVMFR_MAGIC,
|
||||
.version = KVMFR_VERSION,
|
||||
.features = os_hasSetCursorPos() ? KVMFR_FEATURE_SETCURSORPOS : 0
|
||||
};
|
||||
strncpy(udata.hostver, BUILD_VERSION, sizeof(udata.hostver)-1);
|
||||
|
||||
|
@ -661,7 +678,7 @@ int app_main(int argc, char * argv[])
|
|||
|
||||
LG_LOCK_INIT(app.pointerLock);
|
||||
|
||||
if (!lgCreateTimer(100, lgmpTimer, NULL, &app.lgmpTimer))
|
||||
if (!lgCreateTimer(10, lgmpTimer, NULL, &app.lgmpTimer))
|
||||
{
|
||||
DEBUG_ERROR("Failed to create the LGMP timer");
|
||||
|
||||
|
|
Loading…
Reference in a new issue