Commit 29f831065da9481aa9bdc98d432b8eb02a4c5fa9
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): |