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