def __init__(self, selection=None, browser_component=None, browser_mode=None, browser_hotswap_mode=None, insert_left=False, *a, **k): super(CreateDeviceComponent, self).__init__(*a, **k) self._selection = selection self._add_effect_mode = BrowserAddEffectMode( selection=selection, browser=self.application().browser, application_view=self.application().view, insert_left=insert_left) self._create_device_modes = self.register_component(ModesComponent()) self._create_device_modes.add_mode('create', [ SetAttributeMode(browser_component, 'do_load_item', self._do_browser_load_item), self._add_effect_mode, browser_mode, browser_component.reset_load_memory ]) self._create_device_modes.add_mode( 'hotswap', [browser_hotswap_mode, browser_mode]) self._go_to_hotswap_task = self._tasks.add( Task.sequence(Task.delay(1), Task.run(self._go_to_hotswap))) self._go_to_hotswap_task.kill()
class CreateDeviceComponent(CompoundComponent): @depends(selection=None) def __init__(self, selection = None, browser_component = None, browser_mode = None, browser_hotswap_mode = None, insert_left = False, *a, **k): super(CreateDeviceComponent, self).__init__(*a, **k) self._selection = selection self._add_effect_mode = BrowserAddEffectMode(selection=selection, browser=self.application().browser, application_view=self.application().view, insert_left=insert_left) self._create_device_modes = self.register_component(ModesComponent()) self._create_device_modes.add_mode('create', [SetAttributeMode(browser_component, 'do_load_item', self._do_browser_load_item), self._add_effect_mode, browser_mode, browser_component.reset_load_memory]) self._create_device_modes.add_mode('hotswap', [browser_hotswap_mode, browser_mode]) self._go_to_hotswap_task = self._tasks.add(Task.sequence(Task.delay(1), Task.run(self._go_to_hotswap))) self._go_to_hotswap_task.kill() def on_enabled_changed(self): self._go_to_hotswap_task.kill() if self.is_enabled(): selected = self._selection.selected_object if isinstance(selected, Live.DrumPad.DrumPad) and (not selected.chains or not selected.chains[0].devices): self._create_device_modes.selected_mode = 'hotswap' else: self._create_device_modes.selected_mode = 'create' def _go_to_hotswap(self): self._create_device_modes.selected_mode = 'hotswap' def _do_browser_load_item(self, item): selection = self._add_effect_mode.get_selection_for_insert() if selection: self._selection.selected_object = selection item.action() self._go_to_hotswap_task.restart()
def __init__(self, selection=None, browser_component=None, browser_mode=None, browser_hotswap_mode=None, insert_left=False, *a, **k): super(CreateDeviceComponent, self).__init__(*a, **k) self._selection = selection self._add_effect_mode = BrowserAddEffectMode( selection=selection, browser=self.application().browser, application_view=self.application().view, insert_left=insert_left) self._create_device_modes = self.register_component(ModesComponent()) self._create_device_modes.add_mode('create', [ SetAttributeMode(browser_component, 'do_load_item', self._do_browser_load_item), self._add_effect_mode, browser_mode, browser_component.reset_load_memory ]) self._create_device_modes.add_mode( 'hotswap', [browser_hotswap_mode, browser_mode]) self._go_to_hotswap_task = self._tasks.add( Task.sequence(Task.delay(1), Task.run(self._go_to_hotswap))) self._go_to_hotswap_task.kill()