forked from K0lb3/UnityPy
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAudioClip.py
More file actions
Latest commit
60 lines (53 loc) · 2.46 KB
/
Copy pathAudioClip.py
File metadata and controls
60 lines (53 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
from .NamedObjectimportNamedObject
from ..enumsimportAudioType, AudioCompressionFormat, AUDIO_TYPE_EXTEMSION
from ..exportimportAudioClipConverter
from ..helpers.ResourceReaderimportget_resource_data
classAudioClip(NamedObject):
def__init__(self, reader):
super().__init__(reader=reader)
self.m_Source=""
version=self.version
ifversion< (5,): # 5.0 down
self.m_Format=reader.read_int()
self.m_Type=AudioType(reader.read_int())
self.m_3D=reader.read_boolean()
self.m_UseHardware=reader.read_boolean()
reader.align_stream()
ifversion>= (3, 2): # and version <= (5,): # 3.2.0 to 5
self.m_Stream=reader.read_int()
self.m_Size=reader.read_int()
tsize=self.m_Size+4-self.m_Size%4if (self.m_Size%4!=0) elseself.m_Size
ifreader.byte_size+reader.byte_start-reader.Position!=tsize:
self.m_Offset=reader.read_u_int()
self.m_Source=self.assets_file.full_name+".resS"
else:
self.m_Size=reader.read_int()
else:
self.m_LoadType=reader.read_int()
self.m_Channels=reader.read_int()
self.m_Frequency=reader.read_int()
self.m_BitsPerSample=reader.read_int()
self.m_Length=reader.read_float()
self.m_IsTrackerFormat=reader.read_boolean()
reader.align_stream()
self.m_SubsoundIndex=reader.read_int()
self.m_PreloadAudioData=reader.read_boolean()
self.m_LoadInBackground=reader.read_boolean()
self.m_Legacy3D=reader.read_boolean()
reader.align_stream()
self.m_Source=reader.read_aligned_string()
self.m_Offset=reader.read_u_long()
self.m_Size=reader.read_long()
self.m_CompressionFormat=AudioCompressionFormat(reader.read_int())
ifself.m_Source:
self.m_AudioData=get_resource_data(
self.m_Source, self.assets_file, self.m_Offset, self.m_Size
)
else:
self.m_AudioData=reader.read_bytes(self.m_Size)
@property
defextension(self):
returnAUDIO_TYPE_EXTEMSION.get(self.m_CompressionFormat, ".audioclip")
@property
defsamples(self) ->dict:
returnAudioClipConverter.extract_audioclip_samples(self)