mirror of
https://github.com/gnif/LookingGlass.git
synced 2026-08-22 23:21:29 +00:00
125 lines
2.2 KiB
C
125 lines
2.2 KiB
C
/**
|
|
* Looking Glass
|
|
* Copyright © 2017-2026 The Looking Glass Authors
|
|
* https://looking-glass.io
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the Free
|
|
* Software Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc., 59
|
|
* Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
static constexpr wchar_t LG_PIPE_NAME[] = L"\\\\.\\pipe\\LookingGlassIDD";
|
|
|
|
#pragma pack(push, 4)
|
|
struct LGPipeMsg
|
|
{
|
|
unsigned size;
|
|
enum Type : uint32_t
|
|
{
|
|
SETCURSORPOS,
|
|
SETDISPLAYMODE,
|
|
GPUSTATUS,
|
|
RELOADSETTINGS,
|
|
RESOLUTIONREJECTED,
|
|
SET_RECOVERY,
|
|
RECOVERY_OFF,
|
|
RECOVERY_ON,
|
|
RECOVERY_FAILED,
|
|
RECOVERY_NO_DISPLAY,
|
|
CLIPBOARD_SETUP,
|
|
CLIPBOARD_READY,
|
|
CLIPBOARD_KICK,
|
|
CLIPBOARD_RESET
|
|
}
|
|
type;
|
|
|
|
enum : uint32_t
|
|
{
|
|
RECOVERY_ACTIVE = 0x1U
|
|
};
|
|
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
int32_t x;
|
|
int32_t y;
|
|
}
|
|
curorPos;
|
|
|
|
struct
|
|
{
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t refreshMilliHz;
|
|
}
|
|
displayMode;
|
|
|
|
struct
|
|
{
|
|
bool software;
|
|
}
|
|
gpuStatus;
|
|
|
|
struct
|
|
{
|
|
uint32_t width;
|
|
uint32_t height;
|
|
uint32_t requiredSizeMiB;
|
|
}
|
|
resolutionRejected;
|
|
|
|
struct
|
|
{
|
|
uint64_t session;
|
|
uint32_t request;
|
|
}
|
|
recovery;
|
|
|
|
struct
|
|
{
|
|
uint64_t handle;
|
|
uint32_t bytes;
|
|
}
|
|
clipboardSetup;
|
|
|
|
struct
|
|
{
|
|
uint64_t epoch;
|
|
uint32_t status;
|
|
}
|
|
clipboardReady;
|
|
|
|
struct
|
|
{
|
|
uint64_t epoch;
|
|
uint32_t rings;
|
|
}
|
|
clipboardKick;
|
|
|
|
struct
|
|
{
|
|
uint64_t epoch;
|
|
uint32_t reason;
|
|
}
|
|
clipboardReset;
|
|
};
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
static_assert(sizeof(LGPipeMsg) == 20, "LGPipeMsg wire layout changed");
|