mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-07-16 04:12:03 +00:00
[client/obs] update LGMP to detect version missmatch since struct change
This commit is contained in:
@@ -1438,6 +1438,7 @@ static int lg_run(void)
|
||||
core_setGrab(true);
|
||||
|
||||
uint32_t udataSize;
|
||||
uint32_t remoteVersion;
|
||||
KVMFR *udata;
|
||||
int waitCount = 0;
|
||||
|
||||
@@ -1462,7 +1463,7 @@ restart:
|
||||
}
|
||||
|
||||
status = lgmpClientSessionInit(g_state.lgmp, &udataSize, (uint8_t **)&udata,
|
||||
NULL);
|
||||
NULL, &remoteVersion);
|
||||
switch(status)
|
||||
{
|
||||
case LGMP_OK:
|
||||
@@ -1480,6 +1481,8 @@ restart:
|
||||
"Please download and install the matching version."
|
||||
);
|
||||
|
||||
DEBUG_INFO("LGMP host:%u client:%u",
|
||||
remoteVersion, LGMP_PROTOCOL_VERSION);
|
||||
DEBUG_INFO("Waiting for you to upgrade the host application");
|
||||
}
|
||||
|
||||
|
||||
24
obs/lg.c
24
obs/lg.c
@@ -490,15 +490,31 @@ static void lgUpdate(void * data, obs_data_t * settings)
|
||||
uint32_t udataSize;
|
||||
KVMFR * udata;
|
||||
|
||||
if (lgmpClientInit(this->shmDev.mem, this->shmDev.size, &this->lgmp)
|
||||
!= LGMP_OK)
|
||||
LGMP_STATUS status;
|
||||
if ((status = lgmpClientInit(this->shmDev.mem, this->shmDev.size,
|
||||
&this->lgmp)) != LGMP_OK)
|
||||
{
|
||||
printf("lgmpClientInit: %s\n", lgmpStatusString(status));
|
||||
return;
|
||||
}
|
||||
|
||||
usleep(200000);
|
||||
|
||||
if (lgmpClientSessionInit(this->lgmp, &udataSize, (uint8_t **)&udata, NULL)
|
||||
!= LGMP_OK)
|
||||
uint32_t remoteVersion;
|
||||
if ((status = lgmpClientSessionInit(this->lgmp, &udataSize,
|
||||
(uint8_t **)&udata, NULL, &remoteVersion)) != LGMP_OK)
|
||||
{
|
||||
printf("lgmpClientSessionInit: %s", lgmpStatusString(status));
|
||||
if (status == LGMP_ERR_INVALID_VERSION)
|
||||
{
|
||||
printf("The host application is not compatible with this client\n");
|
||||
printf("Expected LGMP version %u but got %u\n",
|
||||
LGMP_PROTOCOL_VERSION, remoteVersion);
|
||||
printf("This is not a Looking Glass error, do not report this");
|
||||
}
|
||||
printf("\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if (udataSize < sizeof(KVMFR) ||
|
||||
memcmp(udata->magic, KVMFR_MAGIC, sizeof(udata->magic)) != 0 ||
|
||||
|
||||
Submodule repos/LGMP updated: cee2933221...149c731050
Reference in New Issue
Block a user