summaryrefslogtreecommitdiff
path: root/data/spice-protocol.vapi
blob: ae884a9222d1277904c5d9ae3e2f7bdc6604d2aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
namespace SpiceProtocol {
	[CCode (cprefix = "Controller", cheader_filename = "spice/controller_prot.h")]
	namespace Controller {
		[CCode (cname = "CONTROLLER_MAGIC")]
		public const uint32 MAGIC;
		[CCode (cname = "CONTROLLER_VERSION")]
		public const int VERSION;

		[Compact]
		public struct InitHeader {
			uint32 magic;
			uint32 version;
			uint32 size;
		}

		[Compact]
		public struct Init {
			InitHeader base;
			uint64 credentials;
			uint32 flags;
		}

		[CCode (cprefix = "CONTROLLER_FLAG_")]
		[Flags]
		public enum Flag {
			EXCLUSIVE,
		}

		[Compact]
		public struct Msg {
			uint32 id;
			uint32 size;
		}

		[CCode (cprefix = "CONTROLLER_")]
		public enum MsgId {
			//extrenal app -> spice client
			HOST,
			PORT,
			SPORT,
			PASSWORD,

			SECURE_CHANNELS,
			DISABLE_CHANNELS,

			TLS_CIPHERS,
			CA_FILE,
			HOST_SUBJECT,

			FULL_SCREEN,
			SET_TITLE,

			CREATE_MENU,
			DELETE_MENU,

			HOTKEYS,
			SEND_CAD,

			CONNECT,
			SHOW,
			HIDE,

			//spice client -> extrenal app
			MENU_ITEM_CLICK,
		}

		[CCode (cname = "unsigned int", cprefix = "CONTROLLER_", has_type_id = false)]
		[Flags]
		public enum Display {
			SET_FULL_SCREEN,
			AUTO_DISPLAY_RES,
		}

		[Compact]
		[CCode (cname = "ControllerValue")]
		public struct MsgValue: Msg {
			Msg base;
			uint32 value;
		}

		[Compact]
		[CCode (cname = "ControllerData")]
		public struct MsgData {
			Msg base;
			uint8 data[0];
		}

		[CCode (cname = "CONTROLLER_MENU_ITEM_DELIMITER")]
		public static string MENU_ITEM_DELIMITER;
		[CCode (cname = "CONTROLLER_MENU_PARAM_DELIMITER")]
		public static string MENU_PARAM_DELIMITER;

		[CCode (cname = "SPICE_MENU_INTERNAL_ID_BASE")]
		public static int MENU_INTERNAL_ID_BASE;
		[CCode (cname = "SPICE_MENU_INTERNAL_ID_SHIFT")]
		public static int MENU_INTERNAL_ID_SHIFT;

		[CCode (cprefix = "CONTROLLER_MENU_FLAGS_", cname = "unsigned int", has_type_id = false)]
		[Flags]
		public enum MenuFlags {
			SEPARATOR,
			DISABLED,
			POPUP,
			CHECKED,
			GRAYED,
		}
	}
}