Skip to content

Commit 0a0bedd

Browse files
authored
Merge pull request #1 from berarma/add-linux-support
Add Linux mmap support through files
2 parents 46a679a + 3789355 commit 0a0bedd

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

rF2data.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import ctypes
99
import mmap
1010
import copy
11+
import platform
1112

1213
class rFactor2Constants:
1314
MAX_MAPPED_VEHICLES = 128
@@ -720,10 +721,20 @@ def __init__(self, input_pid):
720721

721722
def start_mmap(self):
722723
""" Start memory mapping """
723-
self._rf2_tele = mmap.mmap(0, ctypes.sizeof(rF2Telemetry), f"$rFactor2SMMP_Telemetry${self._input_pid}")
724-
self._rf2_scor = mmap.mmap(0, ctypes.sizeof(rF2Scoring), f"$rFactor2SMMP_Scoring${self._input_pid}")
725-
self._rf2_ext = mmap.mmap(0, ctypes.sizeof(rF2Extended), f"$rFactor2SMMP_Extended${self._input_pid}")
726-
self._rf2_ffb = mmap.mmap(0, ctypes.sizeof(rF2ForceFeedback), "$rFactor2SMMP_ForceFeedback$")
724+
if platform.system() == "Windows":
725+
self._rf2_tele = mmap.mmap(0, ctypes.sizeof(rF2Telemetry), f"$rFactor2SMMP_Telemetry${self._input_pid}")
726+
self._rf2_scor = mmap.mmap(0, ctypes.sizeof(rF2Scoring), f"$rFactor2SMMP_Scoring${self._input_pid}")
727+
self._rf2_ext = mmap.mmap(0, ctypes.sizeof(rF2Extended), f"$rFactor2SMMP_Extended${self._input_pid}")
728+
self._rf2_ffb = mmap.mmap(0, ctypes.sizeof(rF2ForceFeedback), "$rFactor2SMMP_ForceFeedback$")
729+
else:
730+
tele_file = open("/dev/shm/$rFactor2SMMP_Telemetry$", "r+")
731+
self._rf2_tele = mmap.mmap(tele_file.fileno(), ctypes.sizeof(rF2Telemetry))
732+
scor_file = open("/dev/shm/$rFactor2SMMP_Scoring$", "r+")
733+
self._rf2_scor = mmap.mmap(scor_file.fileno(), ctypes.sizeof(rF2Scoring))
734+
ext_file = open("/dev/shm/$rFactor2SMMP_Extended$", "r+")
735+
self._rf2_ext = mmap.mmap(ext_file.fileno(), ctypes.sizeof(rF2Extended))
736+
ffb_file = open("/dev/shm/$rFactor2SMMP_ForceFeedback$", "r+")
737+
self._rf2_ffb = mmap.mmap(ffb_file.fileno(), ctypes.sizeof(rF2ForceFeedback))
727738

728739
self.Rf2Tele = rF2Telemetry.from_buffer(self._rf2_tele)
729740
self.Rf2Scor = rF2Scoring.from_buffer(self._rf2_scor)

0 commit comments

Comments
 (0)