Skip to content

Commit dd9697f

Browse files
committed
use the statusbar to display connection status and signal quality
1 parent 5a242a4 commit dd9697f

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

midicontroller/main.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def __init__(self, MainWindow):
4444
self.startButton.clicked.connect(self.monitor)
4545
self.rescanMidiButton.clicked.connect(self.rescanMidi)
4646
self.MainWindow.update_ui_signal.connect(self.update_ui)
47+
self.MainWindow.update_statusbar_signal.connect(self.update_statusbar)
4748
self.midiDeviceComboBoxes = [
4849
self.midiDevice0ComboBox,
4950
self.midiDevice1ComboBox,
@@ -102,13 +103,18 @@ def __init__(self, MainWindow):
102103
# make sure the midi device combo boxes are populated
103104
self.rescanMidi()
104105

106+
# statusbar text elements
107+
self.connected = "not connected"
108+
self.signal_quality = "unknown signal quality"
109+
self.update_statusbar()
105110

106111
def monitor(self):
107112
"""
108113
start/stop button
109114
"""
110115
if self.running:
111-
print "SWITCH OFF"
116+
self.connected = "Not connected"
117+
self.signal_quality = "unknown signal quality"
112118
for i,mo in enumerate(self.midiOut):
113119
bytemsg = self.notequeue.clear_notes(i)
114120
for msg in bytemsg:
@@ -117,7 +123,8 @@ def monitor(self):
117123
self.h.serial_close()
118124
self.running = False
119125
else:
120-
print "SWITCH ON"
126+
self.connected = "Connected"
127+
self.signal_quality = "unknown signal quality"
121128
self.running = True
122129
self.h = None
123130
import serial
@@ -132,9 +139,21 @@ def monitor(self):
132139
self.h.raw_wave_handlers.append(self.raw_wave_handler)
133140
self.h.meditation_handlers.append(self.handle_meditation_event)
134141
self.h.attention_handlers.append(self.handle_attention_event)
142+
self.h.poor_signal_handlers.append(self.handle_poor_signal)
143+
self.h.good_signal_handlers.append(self.handle_good_signal)
135144
else:
136145
self.running = False
137146

147+
self.update_statusbar()
148+
149+
def handle_poor_signal(self, headset, value):
150+
self.signal_quality = "poor signal quality {0}%".format(value)
151+
self.MainWindow.update_statusbar_signal.emit()
152+
153+
def handle_good_signal(self, headset, value):
154+
self.signal_quality = "good signal quality"
155+
self.MainWindow.update_statusbar_signal.emit()
156+
138157
def rescanMidi(self):
139158
"""
140159
list all recognized midi devices
@@ -320,6 +339,9 @@ def update_ui(self):
320339
self.eyeblink_counter += 1
321340
#print "BLINK {0}".format(self.eyeblink_counter)
322341

342+
def update_statusbar(self):
343+
self.statusbar.showMessage("{0} - {1}".format(self.connected,self.signal_quality))
344+
323345
class MainWindowWithCustomSignal(QtGui.QMainWindow):
324346
"""
325347
specialized QtGui.MainWindow
@@ -328,6 +350,7 @@ class MainWindowWithCustomSignal(QtGui.QMainWindow):
328350
(needed to update ui from callback function called from different thread)
329351
"""
330352
update_ui_signal = QtCore.pyqtSignal()
353+
update_statusbar_signal = QtCore.pyqtSignal()
331354

332355
def __init__(self, *args, **kwargs):
333356
super(MainWindowWithCustomSignal, self).__init__(*args, **kwargs)

0 commit comments

Comments
 (0)