def collect_devices(track_or_chain, nesting_level=0): chain_devices = track_or_chain.devices if liveobj_valid(track_or_chain) else [] devices = [] for device in chain_devices: devices.append((device, nesting_level)) if device.can_have_drum_pads and device.view.selected_drum_pad: devices.append((device.view.selected_drum_pad, nesting_level + 1)) devices.extend(collect_devices(nested_device_parent(device), nesting_level=nesting_level + 1)) return devices
def collect_devices(component, track_or_chain, nesting_level=0): chain_devices = track_or_chain.devices if liveobj_valid( track_or_chain) else [] devices = [] for device in chain_devices: devices.append((device, nesting_level)) if is_rack_with_bank_2(device): bank_2_device = RackBank2Device(rack_device=device) component.register_disconnectable(bank_2_device) devices.append((bank_2_device, nesting_level + 1)) else: if device.can_have_drum_pads: if device.view.selected_drum_pad: devices.append( (device.view.selected_drum_pad, nesting_level + 1)) devices.extend( collect_devices(component, (nested_device_parent(device)), nesting_level=(nesting_level + 1))) return devices