4
4
import signal
5
5
import sys
6
6
import mido
7
+ import atexit
7
8
from time import perf_counter
8
9
import time
9
10
from dataclasses import asdict , dataclass
@@ -27,6 +28,20 @@ def print_debug(text:str,print_time=True, debug:bool=False):
27
28
text = f"{ timestamp ()} { text } "
28
29
print (text )
29
30
31
+ def close_and_quit (outport , outportVirt , multiPorts ):
32
+ # outport.close()
33
+ print (f"Closing outputs: { outport } , { outportVirt } " )
34
+ print (f"Closing inputs: { multiPorts } " )
35
+ outport .close ()
36
+ outportVirt .close ()
37
+ for port in multiPorts :
38
+ port .close ()
39
+
40
+ print (f"{ outport } closed: { outport .closed } " )
41
+ print (f"{ outportVirt } closed: { outportVirt .closed } " )
42
+ print (f"{ multiPorts } closed: { multiPorts } " )
43
+ #sys.exit(0)
44
+
30
45
31
46
@dataclass
32
47
class AutoBankHandler :
@@ -72,6 +87,10 @@ def bank_change_direction(self,reset=False):
72
87
def bank_search (self ):
73
88
"""Logic for starting search mode"""
74
89
self .bank_search_time = perf_counter ()
90
+ self .bank_queued = True
91
+ self .bank_running = True
92
+ self .bank_direction = 0
93
+
75
94
print_debug (f"Bank searching started..." )
76
95
pass
77
96
def bank_found (self ):
@@ -154,6 +173,8 @@ def main()->None:
154
173
# dict for lookup/validation for mackie commands
155
174
MCDict = {x :x for x in MCKeys }
156
175
176
+ atexit .register (close_and_quit ,outport , outportVirt , multiPorts )
177
+
157
178
print_debug ("HackieMackie Starting...Ctrl-C to terminate." , debug = True )
158
179
# MAIN LOOP
159
180
#
@@ -280,11 +301,13 @@ def main()->None:
280
301
else :
281
302
banker .bank_search ()
282
303
# should be method
283
- banker .bank_queued = True
284
- banker .bank_running = True
285
- banker .bank_direction = 0
304
+ # banker.bank_queued = True
305
+ # banker.bank_running = True
306
+ # banker.bank_direction = 0
286
307
287
308
banker .bank_queued = True
309
+
310
+
288
311
# bankingRunning = True
289
312
290
313
# PING PONG Logic
0 commit comments