FreeRDP
Loading...
Searching...
No Matches
channels/location.h
1
20#ifndef FREERDP_CHANNEL_LOCATION_H
21#define FREERDP_CHANNEL_LOCATION_H
22
23#include <freerdp/api.h>
24#include <freerdp/dvc.h>
25#include <freerdp/types.h>
26
37#define LOCATION_CHANNEL_NAME "location"
39#define LOCATION_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Location"
40
41#ifdef __cplusplus
42extern "C"
43{
44#endif
45
46 typedef enum
47 {
48 PDUTYPE_LOC_RESERVED = 0x0000,
49 PDUTYPE_SERVER_READY = 0x0001,
50 PDUTYPE_CLIENT_READY = 0x0002,
51 PDUTYPE_BASE_LOCATION3D = 0x0003,
52 PDUTYPE_LOCATION2D_DELTA = 0x0004,
53 PDUTYPE_LOCATION3D_DELTA = 0x0005,
54 } LOCATION_PDUTYPE;
55
56#define LOCATION_HEADER_SIZE 6
57
58 typedef struct
59 {
60 LOCATION_PDUTYPE pduType;
61 UINT32 pduLength;
63
64 typedef enum
65 {
66 RDPLOCATION_PROTOCOL_VERSION_100 = 0x00010000,
67 RDPLOCATION_PROTOCOL_VERSION_200 = 0x00020000,
68 } RDPLOCATION_PROTOCOL_VERSION;
69
70 typedef struct
71 {
72 RDPLOCATION_HEADER header;
73 RDPLOCATION_PROTOCOL_VERSION protocolVersion;
74 UINT32 flags;
76
77 typedef struct
78 {
79 RDPLOCATION_HEADER header;
80 RDPLOCATION_PROTOCOL_VERSION protocolVersion;
81 UINT32 flags;
83
84 typedef enum
85 {
86 LOCATIONSOURCE_IP = 0x00,
87 LOCATIONSOURCE_WIFI = 0x01,
88 LOCATIONSOURCE_CELL = 0x02,
89 LOCATIONSOURCE_GNSS = 0x03,
90 } LOCATIONSOURCE;
91
92 typedef struct
93 {
94 RDPLOCATION_HEADER header;
95 double latitude;
96 double longitude;
97 INT32 altitude;
98 double* speed;
99 double* heading;
100 double* horizontalAccuracy;
101 LOCATIONSOURCE* source;
103
104 typedef struct
105 {
106 RDPLOCATION_HEADER header;
107 double latitudeDelta;
108 double longitudeDelta;
109 double* speedDelta;
110 double* headingDelta;
112
113 typedef struct
114 {
115 RDPLOCATION_HEADER header;
116 double latitudeDelta;
117 double longitudeDelta;
118 INT32 altitudeDelta;
119 double* speedDelta;
120 double* headingDelta;
122
123#ifdef __cplusplus
124}
125#endif
128#endif /* FREERDP_CHANNEL_LOCATION_H */