1
- from enum import IntEnum , Enum , auto
1
+ from enum import IntEnum , IntFlag , Enum , auto
2
2
from ctypes .wintypes import *
3
3
from ctypes import *
4
4
from .Constants import *
@@ -22,7 +22,7 @@ def from_param(cls, obj):
22
22
23
23
24
24
# Define the types we need.
25
- class CtypesEn ( Enum ):
25
+ class CtypesFlagEnum ( IntFlag ):
26
26
"""A ctypes-compatible Enum superclass."""
27
27
28
28
@classmethod
@@ -226,123 +226,75 @@ class SIMCONNECT_FACILITY_LIST_TYPE(CtypesEnum): #
226
226
SIMCONNECT_FACILITY_LIST_TYPE_COUNT = 4 # invalid
227
227
228
228
229
- class SIMCONNECT_VOR_FLAGS (CtypesEn ): # flags for SIMCONNECT_RECV_ID_VOR_LIST
230
- SIMCONNECT_RECV_ID_VOR_LIST_HAS_NAV_SIGNAL = DWORD ( 0x00000001 ) # Has Nav signal
231
- SIMCONNECT_RECV_ID_VOR_LIST_HAS_LOCALIZER = DWORD ( 0x00000002 ) # Has localizer
232
- SIMCONNECT_RECV_ID_VOR_LIST_HAS_GLIDE_SLOPE = DWORD ( 0x00000004 ) # Has Nav signal
233
- SIMCONNECT_RECV_ID_VOR_LIST_HAS_DME = DWORD ( 0x00000008 ) # Station has DME
229
+ class SIMCONNECT_VOR_FLAGS (CtypesFlagEnum ): # flags for SIMCONNECT_RECV_ID_VOR_LIST
230
+ SIMCONNECT_RECV_ID_VOR_LIST_HAS_NAV_SIGNAL = 0x00000001 # Has Nav signal
231
+ SIMCONNECT_RECV_ID_VOR_LIST_HAS_LOCALIZER = 0x00000002 # Has localizer
232
+ SIMCONNECT_RECV_ID_VOR_LIST_HAS_GLIDE_SLOPE = 0x00000004 # Has Nav signal
233
+ SIMCONNECT_RECV_ID_VOR_LIST_HAS_DME = 0x00000008 # Station has DME
234
234
235
235
236
236
# bits for the Waypoint Flags field: may be combined
237
- class SIMCONNECT_WAYPOINT_FLAGS (CtypesEn ): #
238
- SIMCONNECT_WAYPOINT_NONE = DWORD (0x00 ) #
239
- SIMCONNECT_WAYPOINT_SPEED_REQUESTED = DWORD (
240
- 0x04
241
- ) # requested speed at waypoint is valid
242
- SIMCONNECT_WAYPOINT_THROTTLE_REQUESTED = DWORD (
243
- 0x08
244
- ) # request a specific throttle percentage
245
- SIMCONNECT_WAYPOINT_COMPUTE_VERTICAL_SPEED = DWORD (
246
- 0x10
247
- ) # compute vertical to speed to reach waypoint altitude when crossing the waypoint
248
- SIMCONNECT_WAYPOINT_ALTITUDE_IS_AGL = DWORD (0x20 ) # AltitudeIsAGL
249
- SIMCONNECT_WAYPOINT_ON_GROUND = DWORD (
250
- 0x00100000
251
- ) # place this waypoint on the ground
252
- SIMCONNECT_WAYPOINT_REVERSE = DWORD (
253
- 0x00200000
254
- ) # Back up to this waypoint. Only valid on first waypoint
255
- SIMCONNECT_WAYPOINT_WRAP_TO_FIRST = DWORD (
256
- 0x00400000
257
- ) # Wrap around back to first waypoint. Only valid on last waypoint.
258
-
259
-
260
- class SIMCONNECT_EVENT_FLAG (CtypesEn ): #
261
- SIMCONNECT_EVENT_FLAG_DEFAULT = DWORD (0x00000000 ) #
262
- SIMCONNECT_EVENT_FLAG_FAST_REPEAT_TIMER = DWORD (
263
- 0x00000001
264
- ) # set event repeat timer to simulate fast repeat
265
- SIMCONNECT_EVENT_FLAG_SLOW_REPEAT_TIMER = DWORD (
266
- 0x00000002
267
- ) # set event repeat timer to simulate slow repeat
268
- SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY = DWORD (
269
- 0x00000010
270
- ) # interpret GroupID parameter as priority value
271
-
272
-
273
- class SIMCONNECT_DATA_REQUEST_FLAG (CtypesEn ): #
274
- SIMCONNECT_DATA_REQUEST_FLAG_DEFAULT = DWORD (0x00000000 )
275
- SIMCONNECT_DATA_REQUEST_FLAG_CHANGED = DWORD (
276
- 0x00000001
277
- ) # send requested data when value(s) change
278
- SIMCONNECT_DATA_REQUEST_FLAG_TAGGED = DWORD (
279
- 0x00000002
280
- ) # send requested data in tagged format
281
-
282
-
283
- class SIMCONNECT_DATA_SET_FLAG (CtypesEn ): #
284
- SIMCONNECT_DATA_SET_FLAG_DEFAULT = DWORD (0x00000000 )
285
- SIMCONNECT_DATA_SET_FLAG_TAGGED = DWORD (0x00000001 ) # data is in tagged format
286
-
287
-
288
- class SIMCONNECT_CREATE_CLIENT_DATA_FLAG (CtypesEn ): #
289
- SIMCONNECT_CREATE_CLIENT_DATA_FLAG_DEFAULT = DWORD (0x00000000 ) #
290
- SIMCONNECT_CREATE_CLIENT_DATA_FLAG_READ_ONLY = DWORD (
291
- 0x00000001
292
- ) # permit only ClientData creator to write into ClientData
293
-
294
-
295
- class SIMCONNECT_CLIENT_DATA_REQUEST_FLAG (CtypesEn ): #
296
- SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_DEFAULT = DWORD (0x00000000 ) #
297
- SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_CHANGED = DWORD (
298
- 0x00000001
299
- ) # send requested ClientData when value(s) change
300
- SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_TAGGED = DWORD (
301
- 0x00000002
302
- ) # send requested ClientData in tagged format
303
-
304
-
305
- class SIMCONNECT_CLIENT_DATA_SET_FLAG (CtypesEn ): #
306
- SIMCONNECT_CLIENT_DATA_SET_FLAG_DEFAULT = DWORD (0x00000000 ) #
307
- SIMCONNECT_CLIENT_DATA_SET_FLAG_TAGGED = DWORD (
308
- 0x00000001
309
- ) # data is in tagged format
310
-
311
-
312
- class SIMCONNECT_VIEW_SYSTEM_EVENT_DATA (
313
- CtypesEn
314
- ): # dwData contains these flags for the "View" System Event
315
- SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D = DWORD (
316
- 0x00000001
317
- ) # 2D Panels in cockpit view
318
- SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL = DWORD (
319
- 0x00000002
320
- ) # Virtual (3D) panels in cockpit view
321
- SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_ORTHOGONAL = DWORD (
322
- 0x00000004
323
- ) # Orthogonal (Map) view
324
-
325
-
326
- class SIMCONNECT_SOUND_SYSTEM_EVENT_DATA (
327
- CtypesEn
328
- ): # dwData contains these flags for the "Sound" System Event
329
- SIMCONNECT_SOUND_SYSTEM_EVENT_DATA_MASTER = DWORD (0x00000001 ) # Sound Master
330
-
331
-
332
- class SIMCONNECT_PICK_FLAGS (CtypesEn ):
333
- SIMCONNECT_PICK_GROUND = DWORD (
334
- 0x01
335
- ) # pick ground/ pick result item is ground location
336
- SIMCONNECT_PICK_AI = DWORD (
337
- 0x02
338
- ) # pick AI / pick result item is AI, (dwSimObjectID is valid)
339
- SIMCONNECT_PICK_SCENERY = DWORD (
340
- 0x04
341
- ) # pick scenery/ pick result item is scenery object (hSceneryObject is valid)
342
- SIMCONNECT_PICK_ALL = DWORD (
343
- 0x04 | 0x02 | 0x01
344
- ) # pick all / (not valid on pick result item)
345
- SIMCONNECT_PICK_COORDSASPIXELS = DWORD (0x08 ) #
237
+ class SIMCONNECT_WAYPOINT_FLAGS (CtypesFlagEnum ): #
238
+ SIMCONNECT_WAYPOINT_NONE = 0x00 #
239
+ SIMCONNECT_WAYPOINT_SPEED_REQUESTED = 0x04 # requested speed at waypoint is valid
240
+ SIMCONNECT_WAYPOINT_THROTTLE_REQUESTED = 0x08 # request a specific throttle percentage
241
+ SIMCONNECT_WAYPOINT_COMPUTE_VERTICAL_SPEED = 0x10 # compute vertical to speed to reach waypoint altitude when crossing the waypoint
242
+ SIMCONNECT_WAYPOINT_ALTITUDE_IS_AGL = 0x20 # AltitudeIsAGL
243
+ SIMCONNECT_WAYPOINT_ON_GROUND = 0x00100000 # place this waypoint on the ground
244
+ SIMCONNECT_WAYPOINT_REVERSE = 0x00200000 # Back up to this waypoint. Only valid on first waypoint
245
+ SIMCONNECT_WAYPOINT_WRAP_TO_FIRST = 0x00400000
246
+
247
+
248
+ class SIMCONNECT_EVENT_FLAG (CtypesFlagEnum ): #
249
+ SIMCONNECT_EVENT_FLAG_DEFAULT = 0x00000000 #
250
+ SIMCONNECT_EVENT_FLAG_FAST_REPEAT_TIMER = 0x00000001 # set event repeat timer to simulate fast repeat
251
+ SIMCONNECT_EVENT_FLAG_SLOW_REPEAT_TIMER = 0x00000002 # set event repeat timer to simulate slow repeat
252
+ SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY = 0x00000010 # interpret GroupID parameter as priority value
253
+
254
+
255
+ class SIMCONNECT_DATA_REQUEST_FLAG (CtypesFlagEnum ): #
256
+ SIMCONNECT_DATA_REQUEST_FLAG_DEFAULT = 0x00000000
257
+ SIMCONNECT_DATA_REQUEST_FLAG_CHANGED = 0x00000001 # send requested data when value(s) change
258
+ SIMCONNECT_DATA_REQUEST_FLAG_TAGGED = 0x00000002 # send requested data in tagged format
259
+
260
+
261
+ class SIMCONNECT_DATA_SET_FLAG (CtypesFlagEnum ): #
262
+ SIMCONNECT_DATA_SET_FLAG_DEFAULT = 0x00000000
263
+ SIMCONNECT_DATA_SET_FLAG_TAGGED = 0x00000001 # data is in tagged format
264
+
265
+
266
+ class SIMCONNECT_CREATE_CLIENT_DATA_FLAG (CtypesFlagEnum ): #
267
+ SIMCONNECT_CREATE_CLIENT_DATA_FLAG_DEFAULT = 0x00000000 #
268
+ SIMCONNECT_CREATE_CLIENT_DATA_FLAG_READ_ONLY = 0x00000001 # permit only ClientData creator to write into ClientData
269
+
270
+
271
+ class SIMCONNECT_CLIENT_DATA_REQUEST_FLAG (CtypesFlagEnum ): #
272
+ SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_DEFAULT = 0x00000000 #
273
+ SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_CHANGED = 0x00000001 # send requested ClientData when value(s) change
274
+ SIMCONNECT_CLIENT_DATA_REQUEST_FLAG_TAGGED = 0x00000002 # send requested ClientData in tagged format
275
+
276
+
277
+ class SIMCONNECT_CLIENT_DATA_SET_FLAG (CtypesFlagEnum ): #
278
+ SIMCONNECT_CLIENT_DATA_SET_FLAG_DEFAULT = 0x00000000 #
279
+ SIMCONNECT_CLIENT_DATA_SET_FLAG_TAGGED = 0x00000001 # data is in tagged format
280
+
281
+
282
+ class SIMCONNECT_VIEW_SYSTEM_EVENT_DATA (CtypesFlagEnum ): # dwData contains these flags for the "View" System Event
283
+ SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D = 0x00000001 # 2D Panels in cockpit view
284
+ SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL = 0x00000002 # Virtual (3D) panels in cockpit view
285
+ SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_ORTHOGONAL = 0x00000004 # Orthogonal (Map) view
286
+
287
+
288
+ class SIMCONNECT_SOUND_SYSTEM_EVENT_DATA (CtypesFlagEnum ): # dwData contains these flags for the "Sound" System Event
289
+ SIMCONNECT_SOUND_SYSTEM_EVENT_DATA_MASTER = 0x00000001 # Sound Master
290
+
291
+
292
+ class SIMCONNECT_PICK_FLAGS (CtypesFlagEnum ):
293
+ SIMCONNECT_PICK_GROUND = 0x01 # pick ground/ pick result item is ground location
294
+ SIMCONNECT_PICK_AI = 0x02 # pick AI / pick result item is AI, (dwSimObjectID is valid)
295
+ SIMCONNECT_PICK_SCENERY = 0x04 # pick scenery/ pick result item is scenery object (hSceneryObject is valid)
296
+ SIMCONNECT_PICK_ALL = 0x04 | 0x02 | 0x01 # pick all / (not valid on pick result item)
297
+ SIMCONNECT_PICK_COORDSASPIXELS = 0x08 #
346
298
347
299
348
300
# ----------------------------------------------------------------------------
0 commit comments