From 273a9d6c78bbd5338c4fd446857159b8799df553 Mon Sep 17 00:00:00 2001 From: Jean THOMAS Date: Fri, 6 Dec 2024 11:51:10 +0100 Subject: [PATCH] midi1: Add the ability to specify iJack --- usb_protocol/emitters/descriptors/midi1.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/usb_protocol/emitters/descriptors/midi1.py b/usb_protocol/emitters/descriptors/midi1.py index cbd0ef4..caf6fb9 100644 --- a/usb_protocol/emitters/descriptors/midi1.py +++ b/usb_protocol/emitters/descriptors/midi1.py @@ -28,8 +28,17 @@ def add_source(self, sourceId, sourcePin=1): sourceDescriptor.BaSourcePin = sourcePin self.add_subordinate_descriptor(sourceDescriptor) + def __setattr__(self, name, value): + if name == "iJack": + self._iJack = value + else: + return super().__setattr__(name, value) + def _pre_emit(self): - self.add_subordinate_descriptor(MidiOutJackDescriptorFootEmitter()) + foot = MidiOutJackDescriptorFootEmitter() + if hasattr(self, "_iJack"): + foot.iJack = self._iJack + self.add_subordinate_descriptor(foot) # Figure out the total length of our descriptor, including subordinates. subordinate_length = sum(len(sub) for sub in self._subordinates) self.bLength = subordinate_length + self.DESCRIPTOR_FORMAT.sizeof()