Compare commits

...

2 commits

Author SHA1 Message Date
c3171a99b4 bugfixes and tweaks. Auto key bindings for RA3 2026-01-08 17:22:47 -05:00
55f85f6794 updated build 2026-01-08 16:46:16 -05:00
15 changed files with 294 additions and 8959 deletions

View file

@ -22,17 +22,17 @@ shutdown_event = threading.Event()
ERROR_ALREADY_EXISTS = 183 ERROR_ALREADY_EXISTS = 183
# ========================= CONFIG ========================= # ========================= CONFIG =========================
DEBUG = True # Set True to enable debug overrides DEBUG = False # Set True to enable debug overrides
# Default paths (used if not in debug mode) # Default paths (used if not in debug mode)
DEFAULT_GAME_EXE = r".\RA3game.dll" DEFAULT_GAME_EXE = r".\qgame.dll"
DEFAULT_PLAYLIST = r".\arena\music\playlist.txt" DEFAULT_PLAYLIST = r".\arena\music\playlist.txt"
DEFAULT_RA3_MAPS = r".\arena\music\ra3_maps.txt" DEFAULT_RA3_MAPS = r".\arena\music\ra3_maps.txt"
# Debug override paths # Debug override paths
DEBUG_GAME_EXE = r"D:\GOG Games\Quake III\quake3e_con.exe" DEBUG_GAME_EXE = r"D:\GOG Games\Quake III\qgame.dll"
DEBUG_PLAYLIST = r"D:\GOG Games\Rocket Arena 3\arena\music\playlist.txt" DEBUG_PLAYLIST = r"D:\GOG Games\Quake III\arena\music\playlist.txt"
DEBUG_RA3_MAPS = r"D:\GOG Games\Rocket Arena 3\arena\music\ra3_maps.txt" DEBUG_RA3_MAPS = r"D:\GOG Games\Quake III\arena\music\ra3_maps.txt"
# Initial volume # Initial volume
VOLUME_STEP = 0.1 # step for W/S volume control VOLUME_STEP = 0.1 # step for W/S volume control
@ -149,39 +149,43 @@ def load_playlist(playlist_path):
base_dir = playlist_path.parent base_dir = playlist_path.parent
songs = [] songs = []
with open(playlist_path, "r", encoding="utf-8") as f: try:
for line in f: with open(playlist_path, "r", encoding="utf-8") as f:
line = line.strip() for line in f:
if not line: line = line.strip()
continue if not line:
if line.startswith("#"): continue
continue if line.startswith("#"):
continue
song_path = Path(line) song_path = Path(line)
# If the playlist entry is relative, resolve it relative to playlist.txt # If the playlist entry is relative, resolve it relative to playlist.txt
if not song_path.is_absolute(): if not song_path.is_absolute():
song_path = base_dir / song_path song_path = base_dir / song_path
songs.append(str(song_path)) songs.append(str(song_path))
if current_mode == "shuffle": if current_mode == "shuffle":
random.shuffle(songs) random.shuffle(songs)
# Re-align song that's playing to new index # Re-align song that's playing to new index
if current_song != "nosong": if current_song != "nosong":
_song_index = 0 _song_index = 0
_found_song = False _found_song = False
for s in songs: for s in songs:
_song_eval = Path(s).stem _song_eval = Path(s).stem
if current_song == _song_eval: if current_song == _song_eval:
_found_song = True _found_song = True
playlist_index = _song_index playlist_index = _song_index
break break
_song_index += 1 _song_index += 1
if not _found_song: if not _found_song:
playlist_index = 0 playlist_index = 0
play_current() play_current()
except:
print(f"[DEBUG] Failed to open playlist.txt")
pass
return songs return songs
@ -194,13 +198,16 @@ def load_ra3_maps(path):
line = line.strip() line = line.strip()
if line: if line:
maps.add(line.lower()) maps.add(line.lower())
except PermissionError: except:
# File is locked by another process (e.g., Notepad) print(f"[DEBUG] Failed to open ra3_maps.txt")
# Decide how your app should behave
return set() return set()
return maps return maps
def next_track(): def next_track():
global playlist
if not playlist:
return
global volumecheck global volumecheck
volumecheck = True volumecheck = True
send_command(pty_proc,"s_musicvolume") send_command(pty_proc,"s_musicvolume")
@ -212,6 +219,10 @@ def next_track():
play_current() play_current()
def previous_track(): def previous_track():
global playlist
if not playlist:
return
global volumecheck global volumecheck
volumecheck = True volumecheck = True
send_command(pty_proc,"s_musicVolume") send_command(pty_proc,"s_musicVolume")
@ -223,7 +234,7 @@ def previous_track():
play_current() play_current()
def play_current(): def play_current():
global is_playing, current_song global is_playing, current_song, playlist
if not playlist: if not playlist:
return return
track = playlist[playlist_index] track = playlist[playlist_index]
@ -247,6 +258,10 @@ def stop_playback():
is_playing = False is_playing = False
def toggle_pause(): def toggle_pause():
global playlist
if not playlist:
return
global volumecheck global volumecheck
volumecheck = True volumecheck = True
send_command(pty_proc,"s_musicVolume") send_command(pty_proc,"s_musicVolume")
@ -324,16 +339,18 @@ def handle_game_line(line, pty_proc):
print(f"[DEBUG] Active mod is Rocket Arena 3 - enabling music playback") print(f"[DEBUG] Active mod is Rocket Arena 3 - enabling music playback")
is_ra3 = True is_ra3 = True
volumecheck = True volumecheck = True
threading.Timer(1.0, lambda: send_command(pty_proc,"s_musicVolume")).start() threading.Timer(.5, lambda: send_command(pty_proc,"s_musicVolume")).start()
if current_mode == "shuffle": if playlist:
global playlist_index if current_mode == "shuffle":
playlist_index = random.randint(0, len(playlist) - 1) global playlist_index
threading.Timer(2.0, play_current).start() playlist_index = random.randint(0, len(playlist) - 1)
threading.Timer(1.0, play_current).start()
else: else:
if not is_playing: if not is_playing:
next_track() next_track()
threading.Timer(.2, lambda: send_command(pty_proc,"bind [ echo ]\\prevtrack\r\nbind ] echo ]\\nexttrack\r\nbind \\ echo ]\\musicmode\r\nbind ' echo ]\\pausetrack")).start()
else: else:
print(f"[DEBUG] Active mod is NOT Rocket Arena 3 - disabling music playback") #print(f"[DEBUG] Active mod is NOT Rocket Arena 3 - disabling music playback")
is_ra3 = False is_ra3 = False
if is_playing: if is_playing:
stop_playback() stop_playback()
@ -408,7 +425,7 @@ def send_command(pty_proc, cmd):
try: try:
pty_proc.write(cmd + "\r\n") pty_proc.write(cmd + "\r\n")
pty_proc.flush() pty_proc.flush()
print(f"[DEBUG] Sent command: {cmd}") #print(f"[DEBUG] Sent command: {cmd}")
except Exception as e: except Exception as e:
print(f"[DEBUG] Failed to send command: {e}") print(f"[DEBUG] Failed to send command: {e}")
# ========================================================== # ==========================================================
@ -448,9 +465,9 @@ def main():
playlist = load_playlist(playlist_path) playlist = load_playlist(playlist_path)
ra3_maps = load_ra3_maps(ra3_maps_path) ra3_maps = load_ra3_maps(ra3_maps_path)
if not playlist: #if not playlist:
print("Playlist is empty!") # print("Playlist is empty!")
return # return
#if not ra3_maps: #if not ra3_maps:
# print("RA3 maps list is empty!") # print("RA3 maps list is empty!")
# return # return

View file

@ -44,5 +44,5 @@ exe = EXE(
target_arch=None, target_arch=None,
codesign_identity=None, codesign_identity=None,
entitlements_file=None, entitlements_file=None,
icon=['RA3.ico'], icon=['quake3modern.ico'],
) )

View file

@ -1 +1 @@
pyinstaller --onefile --name RA3WITHMP3 --icon=RA3.ico --collect-all readchar --collect-all winpty RA3MP3Playback.py pyinstaller --onefile --name RA3WITHMP3 --icon=quake3modern.ico --collect-all readchar --collect-all winpty RA3MP3Playback.py

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -185,9 +185,6 @@
('ctypes._endian', ('ctypes._endian',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ctypes\\_endian.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ctypes\\_endian.py',
'PYMODULE'), 'PYMODULE'),
('ctypes.wintypes',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ctypes\\wintypes.py',
'PYMODULE'),
('dataclasses', ('dataclasses',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\dataclasses.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\dataclasses.py',
'PYMODULE'), 'PYMODULE'),
@ -371,9 +368,6 @@
('inspect', ('inspect',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\inspect.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\inspect.py',
'PYMODULE'), 'PYMODULE'),
('ipaddress',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ipaddress.py',
'PYMODULE'),
('logging', ('logging',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\logging\\__init__.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\logging\\__init__.py',
'PYMODULE'), 'PYMODULE'),
@ -584,18 +578,6 @@
('pprint', ('pprint',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\pprint.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\pprint.py',
'PYMODULE'), 'PYMODULE'),
('psutil',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\psutil\\__init__.py',
'PYMODULE'),
('psutil._common',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\psutil\\_common.py',
'PYMODULE'),
('psutil._ntuples',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\psutil\\_ntuples.py',
'PYMODULE'),
('psutil._pswindows',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\psutil\\_pswindows.py',
'PYMODULE'),
('py_compile', ('py_compile',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\py_compile.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\py_compile.py',
'PYMODULE'), 'PYMODULE'),
@ -768,12 +750,6 @@
('threading', ('threading',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\threading.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\threading.py',
'PYMODULE'), 'PYMODULE'),
('tkinter',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\tkinter\\__init__.py',
'PYMODULE'),
('tkinter.constants',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\tkinter\\constants.py',
'PYMODULE'),
('token', ('token',
'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\token.py', 'C:\\Users\\Ed\\AppData\\Local\\Programs\\Python\\Python39\\lib\\token.py',
'PYMODULE'), 'PYMODULE'),

Binary file not shown.

Binary file not shown.

View file

@ -17,9 +17,9 @@ IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
missing module named pyimod02_importers - imported by C:\Users\Ed\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (delayed), C:\Users\Ed\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py (delayed) missing module named pyimod02_importers - imported by C:\Users\Ed\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py (delayed), C:\Users\Ed\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py (delayed)
missing module named _posixsubprocess - imported by subprocess (optional), multiprocessing.util (delayed) missing module named _posixsubprocess - imported by subprocess (optional), multiprocessing.util (delayed)
missing module named grp - imported by shutil (optional), tarfile (optional), pathlib (delayed, optional), subprocess (optional) missing module named grp - imported by shutil (optional), tarfile (optional), pathlib (delayed, optional), subprocess (optional)
missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), pathlib (delayed, conditional, optional), subprocess (optional), psutil (optional), distutils.util (delayed, conditional, optional), http.server (delayed, optional), webbrowser (delayed), netrc (delayed, conditional), getpass (delayed) missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), pathlib (delayed, conditional, optional), subprocess (optional), distutils.util (delayed, conditional, optional), http.server (delayed, optional), webbrowser (delayed), netrc (delayed, conditional), getpass (delayed)
missing module named org - imported by pickle (optional) missing module named 'org.python' - imported by pickle (optional), xml.sax (delayed, conditional)
missing module named 'org.python' - imported by copy (optional), xml.sax (delayed, conditional) missing module named org - imported by copy (optional)
missing module named posix - imported by os (conditional, optional), shutil (conditional), importlib._bootstrap_external (conditional) missing module named posix - imported by os (conditional, optional), shutil (conditional), importlib._bootstrap_external (conditional)
missing module named resource - imported by posix (top-level) missing module named resource - imported by posix (top-level)
missing module named _manylinux - imported by pkg_resources._vendor.packaging.tags (delayed, optional), packaging._manylinux (delayed, optional) missing module named _manylinux - imported by pkg_resources._vendor.packaging.tags (delayed, optional), packaging._manylinux (delayed, optional)

View file

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>modulegraph cross reference for RA3MP3Playback.py, pyi_rth__tkinter.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py, pyi_rth_pythoncom.py, pyi_rth_pywintypes.py</title> <title>modulegraph cross reference for RA3MP3Playback.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py, pyi_rth_pythoncom.py, pyi_rth_pywintypes.py</title>
<style> <style>
.node { padding: 0.5em 0 0.5em; border-top: thin grey dotted; } .node { padding: 0.5em 0 0.5em; border-top: thin grey dotted; }
.moduletype { font: smaller italic } .moduletype { font: smaller italic }
@ -11,7 +11,7 @@
</style> </style>
</head> </head>
<body> <body>
<h1>modulegraph cross reference for RA3MP3Playback.py, pyi_rth__tkinter.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py, pyi_rth_pythoncom.py, pyi_rth_pywintypes.py</h1> <h1>modulegraph cross reference for RA3MP3Playback.py, pyi_rth_inspect.py, pyi_rth_multiprocessing.py, pyi_rth_pkgres.py, pyi_rth_pkgutil.py, pyi_rth_pythoncom.py, pyi_rth_pywintypes.py</h1>
<div class="node"> <div class="node">
<a name="RA3MP3Playback.py"></a> <a name="RA3MP3Playback.py"></a>
@ -27,7 +27,6 @@ imports:
&#8226; <a href="#collections.abc">collections.abc</a> &#8226; <a href="#collections.abc">collections.abc</a>
&#8226; <a href="#copyreg">copyreg</a> &#8226; <a href="#copyreg">copyreg</a>
&#8226; <a href="#ctypes">ctypes</a> &#8226; <a href="#ctypes">ctypes</a>
&#8226; <a href="#ctypes.wintypes">ctypes.wintypes</a>
&#8226; <a href="#encodings">encodings</a> &#8226; <a href="#encodings">encodings</a>
&#8226; <a href="#encodings.aliases">encodings.aliases</a> &#8226; <a href="#encodings.aliases">encodings.aliases</a>
&#8226; <a href="#encodings.ascii">encodings.ascii</a> &#8226; <a href="#encodings.ascii">encodings.ascii</a>
@ -158,15 +157,12 @@ imports:
&#8226; <a href="#keyword">keyword</a> &#8226; <a href="#keyword">keyword</a>
&#8226; <a href="#linecache">linecache</a> &#8226; <a href="#linecache">linecache</a>
&#8226; <a href="#locale">locale</a> &#8226; <a href="#locale">locale</a>
&#8226; <a href="#math">math</a>
&#8226; <a href="#ntpath">ntpath</a> &#8226; <a href="#ntpath">ntpath</a>
&#8226; <a href="#operator">operator</a> &#8226; <a href="#operator">operator</a>
&#8226; <a href="#os">os</a> &#8226; <a href="#os">os</a>
&#8226; <a href="#pathlib">pathlib</a> &#8226; <a href="#pathlib">pathlib</a>
&#8226; <a href="#posixpath">posixpath</a> &#8226; <a href="#posixpath">posixpath</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#pygame">pygame</a> &#8226; <a href="#pygame">pygame</a>
&#8226; <a href="#pyi_rth__tkinter.py">pyi_rth__tkinter.py</a>
&#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a> &#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
&#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a> &#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
&#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a> &#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a>
@ -192,7 +188,6 @@ imports:
&#8226; <a href="#sys">sys</a> &#8226; <a href="#sys">sys</a>
&#8226; <a href="#threading">threading</a> &#8226; <a href="#threading">threading</a>
&#8226; <a href="#time">time</a> &#8226; <a href="#time">time</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#traceback">traceback</a> &#8226; <a href="#traceback">traceback</a>
&#8226; <a href="#types">types</a> &#8226; <a href="#types">types</a>
&#8226; <a href="#warnings">warnings</a> &#8226; <a href="#warnings">warnings</a>
@ -209,23 +204,6 @@ imports:
</div> </div>
<div class="node">
<a name="pyi_rth__tkinter.py"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth__tkinter.py" type="text/plain"><tt>pyi_rth__tkinter.py</tt></a>
<span class="moduletype">Script</span> <div class="import">
imports:
<a href="#os">os</a>
&#8226; <a href="#sys">sys</a>
</div>
<div class="import">
imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="pyi_rth_inspect.py"></a> <a name="pyi_rth_inspect.py"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py" type="text/plain"><tt>pyi_rth_inspect.py</tt></a> <a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/Lib/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py" type="text/plain"><tt>pyi_rth_inspect.py</tt></a>
@ -364,7 +342,7 @@ imported by:
<a target="code" href="" type="text/plain"><tt>'org.python'</tt></a> <a target="code" href="" type="text/plain"><tt>'org.python'</tt></a>
<span class="moduletype">MissingModule</span> <div class="import"> <span class="moduletype">MissingModule</span> <div class="import">
imported by: imported by:
<a href="#copy">copy</a> <a href="#pickle">pickle</a>
&#8226; <a href="#xml.sax">xml.sax</a> &#8226; <a href="#xml.sax">xml.sax</a>
</div> </div>
@ -1344,16 +1322,6 @@ imported by:
</div> </div>
<div class="node">
<a name="_tkinter"></a>
<tt>_tkinter</tt> <span class="moduletype"><tt>C:\Users\Ed\AppData\Local\Programs\Python\Python39\DLLs\_tkinter.pyd</tt></span> <div class="import">
imported by:
<a href="#tkinter">tkinter</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="_tracemalloc"></a> <a name="_tracemalloc"></a>
<tt>_tracemalloc</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import"> <tt>_tracemalloc</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import">
@ -2850,9 +2818,6 @@ imported by:
&#8226; <a href="#pkgutil">pkgutil</a> &#8226; <a href="#pkgutil">pkgutil</a>
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#pprint">pprint</a> &#8226; <a href="#pprint">pprint</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#queue">queue</a> &#8226; <a href="#queue">queue</a>
&#8226; <a href="#selectors">selectors</a> &#8226; <a href="#selectors">selectors</a>
@ -3107,8 +3072,6 @@ imported by:
&#8226; <a href="#importlib.util">importlib.util</a> &#8226; <a href="#importlib.util">importlib.util</a>
&#8226; <a href="#packaging._manylinux">packaging._manylinux</a> &#8226; <a href="#packaging._manylinux">packaging._manylinux</a>
&#8226; <a href="#packaging._tokenizer">packaging._tokenizer</a> &#8226; <a href="#packaging._tokenizer">packaging._tokenizer</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#subprocess">subprocess</a> &#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#typing">typing</a> &#8226; <a href="#typing">typing</a>
&#8226; <a href="#urllib.request">urllib.request</a> &#8226; <a href="#urllib.request">urllib.request</a>
@ -3144,8 +3107,8 @@ imported by:
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/copy.py" type="text/plain"><tt>copy</tt></a> <a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/copy.py" type="text/plain"><tt>copy</tt></a>
<span class="moduletype">SourceModule</span> <div class="import"> <span class="moduletype">SourceModule</span> <div class="import">
imports: imports:
<a href="#'org.python'">'org.python'</a> <a href="#copyreg">copyreg</a>
&#8226; <a href="#copyreg">copyreg</a> &#8226; <a href="#org">org</a>
&#8226; <a href="#types">types</a> &#8226; <a href="#types">types</a>
&#8226; <a href="#weakref">weakref</a> &#8226; <a href="#weakref">weakref</a>
@ -3211,7 +3174,6 @@ imported by:
imports: imports:
<a href="#_ctypes">_ctypes</a> <a href="#_ctypes">_ctypes</a>
&#8226; <a href="#ctypes._endian">ctypes._endian</a> &#8226; <a href="#ctypes._endian">ctypes._endian</a>
&#8226; <a href="#ctypes.wintypes">ctypes.wintypes</a>
&#8226; <a href="#nt">nt</a> &#8226; <a href="#nt">nt</a>
&#8226; <a href="#os">os</a> &#8226; <a href="#os">os</a>
&#8226; <a href="#struct">struct</a> &#8226; <a href="#struct">struct</a>
@ -3223,12 +3185,10 @@ imports:
imported by: imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a> <a href="#RA3MP3Playback.py">RA3MP3Playback.py</a>
&#8226; <a href="#ctypes._endian">ctypes._endian</a> &#8226; <a href="#ctypes._endian">ctypes._endian</a>
&#8226; <a href="#ctypes.wintypes">ctypes.wintypes</a>
&#8226; <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a> &#8226; <a href="#multiprocessing.sharedctypes">multiprocessing.sharedctypes</a>
&#8226; <a href="#packaging._manylinux">packaging._manylinux</a> &#8226; <a href="#packaging._manylinux">packaging._manylinux</a>
&#8226; <a href="#pkg_resources._vendor.appdirs">pkg_resources._vendor.appdirs</a> &#8226; <a href="#pkg_resources._vendor.appdirs">pkg_resources._vendor.appdirs</a>
&#8226; <a href="#pkg_resources._vendor.packaging.tags">pkg_resources._vendor.packaging.tags</a> &#8226; <a href="#pkg_resources._vendor.packaging.tags">pkg_resources._vendor.packaging.tags</a>
&#8226; <a href="#psutil._common">psutil._common</a>
</div> </div>
@ -3251,23 +3211,6 @@ imported by:
</div> </div>
<div class="node">
<a name="ctypes.wintypes"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/ctypes/wintypes.py" type="text/plain"><tt>ctypes.wintypes</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#ctypes">ctypes</a>
</div>
<div class="import">
imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a>
&#8226; <a href="#ctypes">ctypes</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="dataclasses"></a> <a name="dataclasses"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/dataclasses.py" type="text/plain"><tt>dataclasses</tt></a> <a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/dataclasses.py" type="text/plain"><tt>dataclasses</tt></a>
@ -3314,7 +3257,6 @@ imported by:
&#8226; <a href="#http.server">http.server</a> &#8226; <a href="#http.server">http.server</a>
&#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a> &#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a>
&#8226; <a href="#plistlib">plistlib</a> &#8226; <a href="#plistlib">plistlib</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#win32com.client.build">win32com.client.build</a> &#8226; <a href="#win32com.client.build">win32com.client.build</a>
&#8226; <a href="#xmlrpc.client">xmlrpc.client</a> &#8226; <a href="#xmlrpc.client">xmlrpc.client</a>
@ -6644,14 +6586,11 @@ imported by:
&#8226; <a href="#inspect">inspect</a> &#8226; <a href="#inspect">inspect</a>
&#8226; <a href="#packaging._elffile">packaging._elffile</a> &#8226; <a href="#packaging._elffile">packaging._elffile</a>
&#8226; <a href="#plistlib">plistlib</a> &#8226; <a href="#plistlib">plistlib</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#py_compile">py_compile</a> &#8226; <a href="#py_compile">py_compile</a>
&#8226; <a href="#re">re</a> &#8226; <a href="#re">re</a>
&#8226; <a href="#signal">signal</a> &#8226; <a href="#signal">signal</a>
&#8226; <a href="#socket">socket</a> &#8226; <a href="#socket">socket</a>
&#8226; <a href="#ssl">ssl</a> &#8226; <a href="#ssl">ssl</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#uuid">uuid</a> &#8226; <a href="#uuid">uuid</a>
</div> </div>
@ -6800,7 +6739,6 @@ imported by:
&#8226; <a href="#importlib.metadata">importlib.metadata</a> &#8226; <a href="#importlib.metadata">importlib.metadata</a>
&#8226; <a href="#importlib.util">importlib.util</a> &#8226; <a href="#importlib.util">importlib.util</a>
&#8226; <a href="#inspect">inspect</a> &#8226; <a href="#inspect">inspect</a>
&#8226; <a href="#ipaddress">ipaddress</a>
&#8226; <a href="#linecache">linecache</a> &#8226; <a href="#linecache">linecache</a>
&#8226; <a href="#locale">locale</a> &#8226; <a href="#locale">locale</a>
&#8226; <a href="#multiprocessing.reduction">multiprocessing.reduction</a> &#8226; <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
@ -6815,9 +6753,6 @@ imported by:
&#8226; <a href="#pkg_resources._vendor.packaging.specifiers">pkg_resources._vendor.packaging.specifiers</a> &#8226; <a href="#pkg_resources._vendor.packaging.specifiers">pkg_resources._vendor.packaging.specifiers</a>
&#8226; <a href="#pkgutil">pkgutil</a> &#8226; <a href="#pkgutil">pkgutil</a>
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#re">re</a> &#8226; <a href="#re">re</a>
&#8226; <a href="#tempfile">tempfile</a> &#8226; <a href="#tempfile">tempfile</a>
&#8226; <a href="#threading">threading</a> &#8226; <a href="#threading">threading</a>
@ -7497,7 +7432,6 @@ imported by:
&#8226; <a href="#pdb">pdb</a> &#8226; <a href="#pdb">pdb</a>
&#8226; <a href="#pkg_resources">pkg_resources</a> &#8226; <a href="#pkg_resources">pkg_resources</a>
&#8226; <a href="#pkgutil">pkgutil</a> &#8226; <a href="#pkgutil">pkgutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a> &#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
@ -7574,23 +7508,6 @@ imported by:
</div> </div>
<div class="node">
<a name="ipaddress"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/ipaddress.py" type="text/plain"><tt>ipaddress</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#functools">functools</a>
&#8226; <a href="#re">re</a>
</div>
<div class="import">
imported by:
<a href="#psutil._common">psutil._common</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="itertools"></a> <a name="itertools"></a>
<tt>itertools</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import"> <tt>itertools</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import">
@ -7793,8 +7710,7 @@ imported by:
<a name="math"></a> <a name="math"></a>
<tt>math</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import"> <tt>math</tt> <span class="moduletype"><i>(builtin module)</i></span> <div class="import">
imported by: imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a> <a href="#_pydecimal">_pydecimal</a>
&#8226; <a href="#_pydecimal">_pydecimal</a>
&#8226; <a href="#asyncio.windows_events">asyncio.windows_events</a> &#8226; <a href="#asyncio.windows_events">asyncio.windows_events</a>
&#8226; <a href="#datetime">datetime</a> &#8226; <a href="#datetime">datetime</a>
&#8226; <a href="#fractions">fractions</a> &#8226; <a href="#fractions">fractions</a>
@ -8839,7 +8755,7 @@ imported by:
<a target="code" href="" type="text/plain"><tt>org</tt></a> <a target="code" href="" type="text/plain"><tt>org</tt></a>
<span class="moduletype">MissingModule</span> <div class="import"> <span class="moduletype">MissingModule</span> <div class="import">
imported by: imported by:
<a href="#pickle">pickle</a> <a href="#copy">copy</a>
</div> </div>
@ -8943,16 +8859,12 @@ imported by:
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#plistlib">plistlib</a> &#8226; <a href="#plistlib">plistlib</a>
&#8226; <a href="#posixpath">posixpath</a> &#8226; <a href="#posixpath">posixpath</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#py_compile">py_compile</a> &#8226; <a href="#py_compile">py_compile</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame">pygame</a> &#8226; <a href="#pygame">pygame</a>
&#8226; <a href="#pygame.macosx">pygame.macosx</a> &#8226; <a href="#pygame.macosx">pygame.macosx</a>
&#8226; <a href="#pygame.pkgdata">pygame.pkgdata</a> &#8226; <a href="#pygame.pkgdata">pygame.pkgdata</a>
&#8226; <a href="#pygame.sysfont">pygame.sysfont</a> &#8226; <a href="#pygame.sysfont">pygame.sysfont</a>
&#8226; <a href="#pyi_rth__tkinter.py">pyi_rth__tkinter.py</a>
&#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a> &#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
&#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a> &#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a>
&#8226; <a href="#pyi_rth_pythoncom.py">pyi_rth_pythoncom.py</a> &#8226; <a href="#pyi_rth_pythoncom.py">pyi_rth_pythoncom.py</a>
@ -8970,7 +8882,6 @@ imported by:
&#8226; <a href="#tarfile">tarfile</a> &#8226; <a href="#tarfile">tarfile</a>
&#8226; <a href="#tempfile">tempfile</a> &#8226; <a href="#tempfile">tempfile</a>
&#8226; <a href="#threading">threading</a> &#8226; <a href="#threading">threading</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#urllib.request">urllib.request</a> &#8226; <a href="#urllib.request">urllib.request</a>
&#8226; <a href="#uu">uu</a> &#8226; <a href="#uu">uu</a>
&#8226; <a href="#uuid">uuid</a> &#8226; <a href="#uuid">uuid</a>
@ -9505,14 +9416,14 @@ imported by:
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/pickle.py" type="text/plain"><tt>pickle</tt></a> <a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/pickle.py" type="text/plain"><tt>pickle</tt></a>
<span class="moduletype">SourceModule</span> <div class="import"> <span class="moduletype">SourceModule</span> <div class="import">
imports: imports:
<a href="#_compat_pickle">_compat_pickle</a> <a href="#'org.python'">'org.python'</a>
&#8226; <a href="#_compat_pickle">_compat_pickle</a>
&#8226; <a href="#_pickle">_pickle</a> &#8226; <a href="#_pickle">_pickle</a>
&#8226; <a href="#codecs">codecs</a> &#8226; <a href="#codecs">codecs</a>
&#8226; <a href="#copyreg">copyreg</a> &#8226; <a href="#copyreg">copyreg</a>
&#8226; <a href="#functools">functools</a> &#8226; <a href="#functools">functools</a>
&#8226; <a href="#io">io</a> &#8226; <a href="#io">io</a>
&#8226; <a href="#itertools">itertools</a> &#8226; <a href="#itertools">itertools</a>
&#8226; <a href="#org">org</a>
&#8226; <a href="#pprint">pprint</a> &#8226; <a href="#pprint">pprint</a>
&#8226; <a href="#re">re</a> &#8226; <a href="#re">re</a>
&#8226; <a href="#struct">struct</a> &#8226; <a href="#struct">struct</a>
@ -10178,137 +10089,6 @@ imported by:
</div> </div>
<div class="node">
<a name="psutil"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/site-packages/psutil/__init__.py" type="text/plain"><tt>psutil</tt></a>
<span class="moduletype">Package</span> <div class="import">
imports:
<a href="#collections">collections</a>
&#8226; <a href="#contextlib">contextlib</a>
&#8226; <a href="#datetime">datetime</a>
&#8226; <a href="#functools">functools</a>
&#8226; <a href="#os">os</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#pwd">pwd</a>
&#8226; <a href="#signal">signal</a>
&#8226; <a href="#socket">socket</a>
&#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#sys">sys</a>
&#8226; <a href="#threading">threading</a>
&#8226; <a href="#time">time</a>
</div>
<div class="import">
imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
</div>
</div>
<div class="node">
<a name="psutil._common"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/site-packages/psutil/_common.py" type="text/plain"><tt>psutil._common</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#collections">collections</a>
&#8226; <a href="#ctypes">ctypes</a>
&#8226; <a href="#enum">enum</a>
&#8226; <a href="#functools">functools</a>
&#8226; <a href="#inspect">inspect</a>
&#8226; <a href="#ipaddress">ipaddress</a>
&#8226; <a href="#os">os</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#socket">socket</a>
&#8226; <a href="#stat">stat</a>
&#8226; <a href="#sys">sys</a>
&#8226; <a href="#threading">threading</a>
&#8226; <a href="#warnings">warnings</a>
</div>
<div class="import">
imported by:
<a href="#psutil">psutil</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
</div>
</div>
<div class="node">
<a name="psutil._ntuples"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/site-packages/psutil/_ntuples.py" type="text/plain"><tt>psutil._ntuples</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#collections">collections</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
</div>
<div class="import">
imported by:
<a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
</div>
</div>
<div class="node">
<a name="psutil._psutil_windows"></a>
<tt>psutil._psutil_windows</tt> <span class="moduletype"><tt>C:\Users\Ed\AppData\Local\Programs\Python\Python39\lib\site-packages\psutil\_psutil_windows.pyd</tt></span> <div class="import">
imports:
<a href="#psutil">psutil</a>
</div>
<div class="import">
imported by:
<a href="#psutil">psutil</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
</div>
</div>
<div class="node">
<a name="psutil._pswindows"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/site-packages/psutil/_pswindows.py" type="text/plain"><tt>psutil._pswindows</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#contextlib">contextlib</a>
&#8226; <a href="#enum">enum</a>
&#8226; <a href="#functools">functools</a>
&#8226; <a href="#os">os</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._ntuples">psutil._ntuples</a>
&#8226; <a href="#psutil._psutil_windows">psutil._psutil_windows</a>
&#8226; <a href="#signal">signal</a>
&#8226; <a href="#sys">sys</a>
&#8226; <a href="#threading">threading</a>
&#8226; <a href="#time">time</a>
</div>
<div class="import">
imported by:
<a href="#psutil">psutil</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="pwd"></a> <a name="pwd"></a>
<a target="code" href="" type="text/plain"><tt>pwd</tt></a> <a target="code" href="" type="text/plain"><tt>pwd</tt></a>
@ -10320,7 +10100,6 @@ imported by:
&#8226; <a href="#netrc">netrc</a> &#8226; <a href="#netrc">netrc</a>
&#8226; <a href="#pathlib">pathlib</a> &#8226; <a href="#pathlib">pathlib</a>
&#8226; <a href="#posixpath">posixpath</a> &#8226; <a href="#posixpath">posixpath</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#shutil">shutil</a> &#8226; <a href="#shutil">shutil</a>
&#8226; <a href="#subprocess">subprocess</a> &#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#tarfile">tarfile</a> &#8226; <a href="#tarfile">tarfile</a>
@ -11709,7 +11488,6 @@ imported by:
&#8226; <a href="#http.cookiejar">http.cookiejar</a> &#8226; <a href="#http.cookiejar">http.cookiejar</a>
&#8226; <a href="#importlib.metadata">importlib.metadata</a> &#8226; <a href="#importlib.metadata">importlib.metadata</a>
&#8226; <a href="#inspect">inspect</a> &#8226; <a href="#inspect">inspect</a>
&#8226; <a href="#ipaddress">ipaddress</a>
&#8226; <a href="#locale">locale</a> &#8226; <a href="#locale">locale</a>
&#8226; <a href="#logging">logging</a> &#8226; <a href="#logging">logging</a>
&#8226; <a href="#packaging._manylinux">packaging._manylinux</a> &#8226; <a href="#packaging._manylinux">packaging._manylinux</a>
@ -11741,7 +11519,6 @@ imported by:
&#8226; <a href="#sysconfig">sysconfig</a> &#8226; <a href="#sysconfig">sysconfig</a>
&#8226; <a href="#tarfile">tarfile</a> &#8226; <a href="#tarfile">tarfile</a>
&#8226; <a href="#textwrap">textwrap</a> &#8226; <a href="#textwrap">textwrap</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#tokenize">tokenize</a> &#8226; <a href="#tokenize">tokenize</a>
&#8226; <a href="#typing">typing</a> &#8226; <a href="#typing">typing</a>
&#8226; <a href="#urllib.parse">urllib.parse</a> &#8226; <a href="#urllib.parse">urllib.parse</a>
@ -12137,8 +11914,6 @@ imported by:
&#8226; <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a> &#8226; <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
&#8226; <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a> &#8226; <a href="#multiprocessing.resource_tracker">multiprocessing.resource_tracker</a>
&#8226; <a href="#pdb">pdb</a> &#8226; <a href="#pdb">pdb</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#subprocess">subprocess</a> &#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#winpty.ptyprocess">winpty.ptyprocess</a> &#8226; <a href="#winpty.ptyprocess">winpty.ptyprocess</a>
&#8226; <a href="#winpty.tests.test_ptyprocess">winpty.tests.test_ptyprocess</a> &#8226; <a href="#winpty.tests.test_ptyprocess">winpty.tests.test_ptyprocess</a>
@ -12182,8 +11957,6 @@ imported by:
&#8226; <a href="#multiprocessing.reduction">multiprocessing.reduction</a> &#8226; <a href="#multiprocessing.reduction">multiprocessing.reduction</a>
&#8226; <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a> &#8226; <a href="#multiprocessing.resource_sharer">multiprocessing.resource_sharer</a>
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#socketserver">socketserver</a> &#8226; <a href="#socketserver">socketserver</a>
&#8226; <a href="#ssl">ssl</a> &#8226; <a href="#ssl">ssl</a>
&#8226; <a href="#urllib.request">urllib.request</a> &#8226; <a href="#urllib.request">urllib.request</a>
@ -12331,7 +12104,6 @@ imported by:
&#8226; <a href="#pathlib">pathlib</a> &#8226; <a href="#pathlib">pathlib</a>
&#8226; <a href="#pkg_resources">pkg_resources</a> &#8226; <a href="#pkg_resources">pkg_resources</a>
&#8226; <a href="#posixpath">posixpath</a> &#8226; <a href="#posixpath">posixpath</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#shutil">shutil</a> &#8226; <a href="#shutil">shutil</a>
&#8226; <a href="#tarfile">tarfile</a> &#8226; <a href="#tarfile">tarfile</a>
&#8226; <a href="#zipfile">zipfile</a> &#8226; <a href="#zipfile">zipfile</a>
@ -12484,7 +12256,6 @@ imported by:
&#8226; <a href="#packaging._musllinux">packaging._musllinux</a> &#8226; <a href="#packaging._musllinux">packaging._musllinux</a>
&#8226; <a href="#packaging.tags">packaging.tags</a> &#8226; <a href="#packaging.tags">packaging.tags</a>
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame.sysfont">pygame.sysfont</a> &#8226; <a href="#pygame.sysfont">pygame.sysfont</a>
&#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a> &#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
@ -12604,9 +12375,6 @@ imported by:
&#8226; <a href="#platform">platform</a> &#8226; <a href="#platform">platform</a>
&#8226; <a href="#posixpath">posixpath</a> &#8226; <a href="#posixpath">posixpath</a>
&#8226; <a href="#pprint">pprint</a> &#8226; <a href="#pprint">pprint</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#py_compile">py_compile</a> &#8226; <a href="#py_compile">py_compile</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame">pygame</a> &#8226; <a href="#pygame">pygame</a>
@ -12616,7 +12384,6 @@ imported by:
&#8226; <a href="#pygame.pkgdata">pygame.pkgdata</a> &#8226; <a href="#pygame.pkgdata">pygame.pkgdata</a>
&#8226; <a href="#pygame.rect">pygame.rect</a> &#8226; <a href="#pygame.rect">pygame.rect</a>
&#8226; <a href="#pygame.sysfont">pygame.sysfont</a> &#8226; <a href="#pygame.sysfont">pygame.sysfont</a>
&#8226; <a href="#pyi_rth__tkinter.py">pyi_rth__tkinter.py</a>
&#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a> &#8226; <a href="#pyi_rth_inspect.py">pyi_rth_inspect.py</a>
&#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a> &#8226; <a href="#pyi_rth_multiprocessing.py">pyi_rth_multiprocessing.py</a>
&#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a> &#8226; <a href="#pyi_rth_pkgres.py">pyi_rth_pkgres.py</a>
@ -12640,7 +12407,6 @@ imported by:
&#8226; <a href="#tarfile">tarfile</a> &#8226; <a href="#tarfile">tarfile</a>
&#8226; <a href="#tempfile">tempfile</a> &#8226; <a href="#tempfile">tempfile</a>
&#8226; <a href="#threading">threading</a> &#8226; <a href="#threading">threading</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#tokenize">tokenize</a> &#8226; <a href="#tokenize">tokenize</a>
&#8226; <a href="#traceback">traceback</a> &#8226; <a href="#traceback">traceback</a>
&#8226; <a href="#types">types</a> &#8226; <a href="#types">types</a>
@ -12849,9 +12615,6 @@ imported by:
&#8226; <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a> &#8226; <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
&#8226; <a href="#multiprocessing.util">multiprocessing.util</a> &#8226; <a href="#multiprocessing.util">multiprocessing.util</a>
&#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a> &#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame.threads">pygame.threads</a> &#8226; <a href="#pygame.threads">pygame.threads</a>
&#8226; <a href="#pywin.dialogs.status">pywin.dialogs.status</a> &#8226; <a href="#pywin.dialogs.status">pywin.dialogs.status</a>
@ -12897,8 +12660,6 @@ imported by:
&#8226; <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a> &#8226; <a href="#multiprocessing.synchronize">multiprocessing.synchronize</a>
&#8226; <a href="#pkg_resources">pkg_resources</a> &#8226; <a href="#pkg_resources">pkg_resources</a>
&#8226; <a href="#pprint">pprint</a> &#8226; <a href="#pprint">pprint</a>
&#8226; <a href="#psutil">psutil</a>
&#8226; <a href="#psutil._pswindows">psutil._pswindows</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame.threads">pygame.threads</a> &#8226; <a href="#pygame.threads">pygame.threads</a>
&#8226; <a href="#pywin.dialogs.status">pywin.dialogs.status</a> &#8226; <a href="#pywin.dialogs.status">pywin.dialogs.status</a>
@ -12923,46 +12684,6 @@ imported by:
</div> </div>
<div class="node">
<a name="tkinter"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/tkinter/__init__.py" type="text/plain"><tt>tkinter</tt></a>
<span class="moduletype">Package</span> <div class="import">
imports:
<a href="#_tkinter">_tkinter</a>
&#8226; <a href="#enum">enum</a>
&#8226; <a href="#os">os</a>
&#8226; <a href="#re">re</a>
&#8226; <a href="#sys">sys</a>
&#8226; <a href="#tkinter.constants">tkinter.constants</a>
&#8226; <a href="#traceback">traceback</a>
&#8226; <a href="#types">types</a>
</div>
<div class="import">
imported by:
<a href="#RA3MP3Playback.py">RA3MP3Playback.py</a>
&#8226; <a href="#tkinter.constants">tkinter.constants</a>
</div>
</div>
<div class="node">
<a name="tkinter.constants"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/tkinter/constants.py" type="text/plain"><tt>tkinter.constants</tt></a>
<span class="moduletype">SourceModule</span> <div class="import">
imports:
<a href="#tkinter">tkinter</a>
</div>
<div class="import">
imported by:
<a href="#tkinter">tkinter</a>
</div>
</div>
<div class="node"> <div class="node">
<a name="token"></a> <a name="token"></a>
<a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/token.py" type="text/plain"><tt>token</tt></a> <a target="code" href="///C:/Users/Ed/AppData/Local/Programs/Python/Python39/lib/token.py" type="text/plain"><tt>token</tt></a>
@ -13037,7 +12758,6 @@ imported by:
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#socketserver">socketserver</a> &#8226; <a href="#socketserver">socketserver</a>
&#8226; <a href="#threading">threading</a> &#8226; <a href="#threading">threading</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#warnings">warnings</a> &#8226; <a href="#warnings">warnings</a>
&#8226; <a href="#win32com.client.dynamic">win32com.client.dynamic</a> &#8226; <a href="#win32com.client.dynamic">win32com.client.dynamic</a>
&#8226; <a href="#win32com.server.dispatcher">win32com.server.dispatcher</a> &#8226; <a href="#win32com.server.dispatcher">win32com.server.dispatcher</a>
@ -13132,7 +12852,6 @@ imported by:
&#8226; <a href="#subprocess">subprocess</a> &#8226; <a href="#subprocess">subprocess</a>
&#8226; <a href="#sysconfig">sysconfig</a> &#8226; <a href="#sysconfig">sysconfig</a>
&#8226; <a href="#tempfile">tempfile</a> &#8226; <a href="#tempfile">tempfile</a>
&#8226; <a href="#tkinter">tkinter</a>
&#8226; <a href="#typing">typing</a> &#8226; <a href="#typing">typing</a>
&#8226; <a href="#urllib.parse">urllib.parse</a> &#8226; <a href="#urllib.parse">urllib.parse</a>
&#8226; <a href="#win32com">win32com</a> &#8226; <a href="#win32com">win32com</a>
@ -13494,7 +13213,6 @@ imported by:
&#8226; <a href="#pkg_resources._vendor.packaging.tags">pkg_resources._vendor.packaging.tags</a> &#8226; <a href="#pkg_resources._vendor.packaging.tags">pkg_resources._vendor.packaging.tags</a>
&#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a> &#8226; <a href="#pkg_resources._vendor.pyparsing">pkg_resources._vendor.pyparsing</a>
&#8226; <a href="#pkgutil">pkgutil</a> &#8226; <a href="#pkgutil">pkgutil</a>
&#8226; <a href="#psutil._common">psutil._common</a>
&#8226; <a href="#pydoc">pydoc</a> &#8226; <a href="#pydoc">pydoc</a>
&#8226; <a href="#pygame">pygame</a> &#8226; <a href="#pygame">pygame</a>
&#8226; <a href="#pygame.sndarray">pygame.sndarray</a> &#8226; <a href="#pygame.sndarray">pygame.sndarray</a>

Binary file not shown.

BIN
dist/RA3WITHMP3.exe vendored

Binary file not shown.

BIN
quake3modern.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB