From 4a31f50b50749b1b6d71bbc6bb222445f99392e9 Mon Sep 17 00:00:00 2001 From: coon Date: Tue, 23 Sep 2025 21:48:28 +0200 Subject: [PATCH] add optional filter for recv() function --- mixer.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mixer.py b/mixer.py index bd1a7a7..ec2d568 100755 --- a/mixer.py +++ b/mixer.py @@ -27,7 +27,7 @@ class Mixer: GET_METER_DATA_REQUEST = 0x12 GET_METER_DATA_RESPONSE = 0x13 - def recv(self): + def recv(self, response_msg_filter: SysExMessageId = None): p = mido.Parser() while True: @@ -41,12 +41,20 @@ class Mixer: if p.pending(): msg = p.get_message() - print(msg.type) print(vars(msg)) if hasattr(msg, "data"): print("Hex: ", " ".join(f"{b:02X}" for b in msg.data)) + if response_msg_filter is not None: + if msg.type != 'sysex': + continue + + msg_id = int(msg.data[8]) + + if msg_id != response_msg_filter.value: + continue + return msg def get_system_state(self): @@ -109,7 +117,7 @@ class Mixer: print("Sent:", " ".join(f"{b:02X}" for b in msg_bytes)) self.sock.sendall(msg_bytes) - response = self.recv() + response = self.recv(self.SysExMessageId.GET_NAME_FROM_QU_RESPONSE) sysex_header = response.data[:8]