-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWwiseStateBrowser.py
95 lines (70 loc) · 3.34 KB
/
WwiseStateBrowser.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#! python3
import os
import configparser
import WwiseStateBrowserInterface
import WwiseStateBrowserGUI
# def main():
# # Load config file.
# config = configparser.ConfigParser()
# if not os.path.exists(os.getcwd()+"\\WwiseStateBrowser.ini"):
# with open('WwiseStateBrowser.ini', 'w') as ini:
# config['DEFAULT'] = {'enable_autosync': True,
# 'visible_stategroup_path': False}
# config['SETTINGS'] = {'enableautosync': True,
# 'visible_stategroup_path': False}
# config.write(ini)
# config.read('WwiseStateBrowser.ini')
# rootwd = WwiseStateBrowserGUI.MainWindow(
# config['SETTINGS']['enable_autosync'], config['SETTINGS']['visible_stategroup_path'])
# rootwd.protocol("WM_DELETE_WINDOW",
# lambda: close_main_window(rootwd))
# rootwd.btn_connectwaapi['command'] = lambda: connect_to_wwise(rootwd)
# client = connect_to_wwise(rootwd)
# rootwd.mainloop()
def connect_to_wwise(rootwd: WwiseStateBrowserGUI.MainWindow):
rootwd.show_status_message('Connecting to Wwise...')
try:
client = WwiseStateBrowserInterface.StateUtility(observer=rootwd)
global handler
handler = client.subscribe(
"ak.wwise.core.project.preClosed", lambda: disconnect_from_wwise(rootwd, client))
rootwd.protocol("WM_DELETE_WINDOW",
lambda: close_main_window(rootwd, client))
rootwd.btn_connectwaapi['command'] = lambda: disconnect_from_wwise(
rootwd, client)
rootwd.btn_connectwaapi.config(text="Disconnect")
return client
except WwiseStateBrowserInterface.CannotConnectToWaapiException as e:
rootwd.show_status_message(e)
return
def disconnect_from_wwise(rootwd: WwiseStateBrowserGUI.MainWindow, client: WwiseStateBrowserInterface.StateUtility):
client.disconnect()
rootwd.btn_connectwaapi['command'] = lambda: connect_to_wwise(rootwd)
rootwd.btn_connectwaapi.config(text="Connect")
def close_main_window(rootwd: WwiseStateBrowserGUI.MainWindow, client: WwiseStateBrowserInterface.StateUtility = None):
if isinstance(client, WwiseStateBrowserInterface.StateUtility):
del client
with open('WwiseStateBrowser.ini', 'w') as ini:
config['SETTINGS'] = {'enable_autosync': rootwd.enable_autosync.get(),
'visible_stategroup_path': rootwd.visible_stategroup_path.get()}
config.write(ini)
rootwd.quit()
# Config File.
config = configparser.ConfigParser()
if not os.path.exists(os.getcwd()+"\\WwiseStateBrowser.ini"):
with open('WwiseStateBrowser.ini', 'w') as ini:
config['DEFAULT'] = {'enable_autosync': True,
'visible_stategroup_path': False}
config['SETTINGS'] = {'enableautosync': True,
'visible_stategroup_path': False}
config.write(ini)
config.read('WwiseStateBrowser.ini')
rootwd = WwiseStateBrowserGUI.MainWindow(
config['SETTINGS']['enable_autosync'], config['SETTINGS']['visible_stategroup_path'])
rootwd.protocol("WM_DELETE_WINDOW",
lambda: close_main_window(rootwd))
rootwd.btn_connectwaapi['command'] = lambda: connect_to_wwise(rootwd)
client = connect_to_wwise(rootwd)
rootwd.mainloop()
# if __name__ == "__main__":
# main()