Commit 29f831065da9481aa9bdc98d432b8eb02a4c5fa9

Authored by okahilak
Committed by GitHub
1 parent 7ee07254
Exists in master

MOD: Publish events when pedal connected, disconnected, or state changed (#330)

Showing 1 changed file with 9 additions and 1 deletions   Show diff stats
invesalius/net/pedal_connection.py
@@ -22,6 +22,7 @@ from threading import Thread @@ -22,6 +22,7 @@ from threading import Thread
22 22
23 import mido 23 import mido
24 24
  25 +from invesalius.pubsub import pub as Publisher
25 from invesalius.utils import Singleton 26 from invesalius.utils import Singleton
26 27
27 class PedalConnection(Thread, metaclass=Singleton): 28 class PedalConnection(Thread, metaclass=Singleton):
@@ -50,6 +51,8 @@ class PedalConnection(Thread, metaclass=Singleton): @@ -50,6 +51,8 @@ class PedalConnection(Thread, metaclass=Singleton):
50 if not self._callbacks: 51 if not self._callbacks:
51 print("Pedal pressed, no callbacks registered") 52 print("Pedal pressed, no callbacks registered")
52 else: 53 else:
  54 + Publisher.sendMessage('Pedal state changed', state=True)
  55 +
53 for callback in self._callbacks.values(): 56 for callback in self._callbacks.values():
54 callback(True) 57 callback(True)
55 58
@@ -57,9 +60,10 @@ class PedalConnection(Thread, metaclass=Singleton): @@ -57,9 +60,10 @@ class PedalConnection(Thread, metaclass=Singleton):
57 if not self._callbacks: 60 if not self._callbacks:
58 print("Pedal released, no callbacks registered") 61 print("Pedal released, no callbacks registered")
59 else: 62 else:
  63 + Publisher.sendMessage('Pedal state changed', state=False)
  64 +
60 for callback in self._callbacks.values(): 65 for callback in self._callbacks.values():
61 callback(False) 66 callback(False)
62 -  
63 else: 67 else:
64 print("Unknown message type received from MIDI device") 68 print("Unknown message type received from MIDI device")
65 69
@@ -70,6 +74,8 @@ class PedalConnection(Thread, metaclass=Singleton): @@ -70,6 +74,8 @@ class PedalConnection(Thread, metaclass=Singleton):
70 self._midi_in._rt.ignore_types(False, False, False) 74 self._midi_in._rt.ignore_types(False, False, False)
71 self._midi_in.callback = self._midi_to_pedal 75 self._midi_in.callback = self._midi_to_pedal
72 76
  77 + Publisher.sendMessage('Pedal connection', state=True)
  78 +
73 print("Connected to MIDI device") 79 print("Connected to MIDI device")
74 80
75 def _check_disconnected(self): 81 def _check_disconnected(self):
@@ -77,6 +83,8 @@ class PedalConnection(Thread, metaclass=Singleton): @@ -77,6 +83,8 @@ class PedalConnection(Thread, metaclass=Singleton):
77 if self._active_input not in self._midi_inputs: 83 if self._active_input not in self._midi_inputs:
78 self._midi_in = None 84 self._midi_in = None
79 85
  86 + Publisher.sendMessage('Pedal connection', state=False)
  87 +
80 print("Disconnected from MIDI device") 88 print("Disconnected from MIDI device")
81 89
82 def _update_midi_inputs(self): 90 def _update_midi_inputs(self):