Skip to content

Commit 986c226

Browse files
authored
Merge pull request #101 from Koseng/fixFlagEnums
Fix Flag Enums for SimConnect interface
2 parents 5a6a932 + bc32675 commit 986c226

File tree

1 file changed

+68
-116
lines changed

1 file changed

+68
-116
lines changed

SimConnect/Enum.py

+68-116
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from enum import IntEnum, Enum, auto
1+
from enum import IntEnum, IntFlag, Enum, auto
22
from ctypes.wintypes import *
33
from ctypes import *
44
from .Constants import *
@@ -22,7 +22,7 @@ def from_param(cls, obj):
2222

2323

2424
# Define the types we need.
25-
class CtypesEn(Enum):
25+
class CtypesFlagEnum(IntFlag):
2626
"""A ctypes-compatible Enum superclass."""
2727

2828
@classmethod
@@ -226,123 +226,75 @@ class SIMCONNECT_FACILITY_LIST_TYPE(CtypesEnum): #
226226
SIMCONNECT_FACILITY_LIST_TYPE_COUNT = 4 # invalid
227227

228228

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
234234

235235

236236
# 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 #
346298

347299

348300
# ----------------------------------------------------------------------------

0 commit comments

Comments
 (0)