mirror of
https://github.com/Escartem/AnimeWwise.git
synced 2026-06-11 12:10:24 +08:00
avoid reloading map every time
This commit is contained in:
23
extract.py
23
extract.py
@@ -17,15 +17,30 @@ class WwiseExtract:
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.allocator = Allocator()
|
self.allocator = Allocator()
|
||||||
self.hdiff_dir = None
|
self.hdiff_dir = None
|
||||||
|
self.maps = {}
|
||||||
|
|
||||||
### loading files ###
|
### loading files ###
|
||||||
|
|
||||||
|
def load_map(self, _map):
|
||||||
|
map_name = _map.split(".")[0]
|
||||||
|
|
||||||
|
if map_name not in self.maps or self.maps[map_name] is None:
|
||||||
|
print("Map load required !")
|
||||||
|
mapper = Mapper(path(cwd, f"maps/{_map}"))
|
||||||
|
self.maps[map_name] = mapper
|
||||||
|
else:
|
||||||
|
print("Mapping already loaded, skipping")
|
||||||
|
|
||||||
|
return self.maps[map_name]
|
||||||
|
|
||||||
def load_folder(self, _map, files, diff_path, progress):
|
def load_folder(self, _map, files, diff_path, progress):
|
||||||
self.progress = progress
|
self.progress = progress
|
||||||
self.steps = 1
|
self.steps = 1
|
||||||
|
|
||||||
self.mapper = None
|
self.mapper = None
|
||||||
if _map is not None:
|
if _map is not None:
|
||||||
self.mapper = Mapper(path(cwd, f"maps/{_map}")) # TODO: load maps once
|
self.mapper = self.load_map(_map)
|
||||||
|
|
||||||
self.file_structure = {"folders": {}, "files": []}
|
self.file_structure = {"folders": {}, "files": []}
|
||||||
|
|
||||||
hdiff_files = []
|
hdiff_files = []
|
||||||
@@ -345,8 +360,10 @@ class WwiseExtract:
|
|||||||
self.progress(["file", current * 100 // total])
|
self.progress(["file", current * 100 // total])
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
if self.mapper is not None:
|
self.mapper = None
|
||||||
self.mapper.reset()
|
for e in self.maps.values():
|
||||||
|
e.reset()
|
||||||
|
self.maps.clear()
|
||||||
self.allocator.free_mem()
|
self.allocator.free_mem()
|
||||||
if self.hdiff_dir is not None:
|
if self.hdiff_dir is not None:
|
||||||
self.hdiff_dir.cleanup()
|
self.hdiff_dir.cleanup()
|
||||||
|
|||||||
Reference in New Issue
Block a user