If the user attempted to access a view with no tracks in it, it would
show all blank screens. Now, it will show a temporary warning message and return
to the previous view.
This fixes `gtk_menu_attach_to_widget(): menu already attached`
after first showing the context menu in a mixer's processor
box, and later in a different context (regionFX, I/O plugins,
route properties,..) in optimized builds.
When a user changes a value in the Plugin GUI, JUCE informs the
DSP behind the host's back, and later informs the host from the
DSP (realtime) thread, by sending patch:Set messages from the DSP
back to the host/UI.
This is really bad practice, particularly since the plugin does
no even use LV2 instance access, or LV2 data access features.
Processor changes trigger configure_io() which resulted in a
call to reset_write_sources(), which is a disaster while recording.
This allows adding plugins while recording, and prevents adding
any plugins before the disk-writer that change the channel-count
while recording, or changing strict-i/o to the same effect.
This code only worked for port groups that themselves (the specific group
instance) listed their designations. This worked with LSP, which redundantly
duplicates the elements from the group's class for some reason, but not with
other plugins like MDA which simply refer to a standard group like
<http://lv2plug.in/ns/ext/port-groups#StereoGroup>.
This does require the specification data to be loaded from the LV2 path (maybe
why LSP does that?), but that's generally expected for anything LV2 to work.
* show _region_line dropdown and label (previously ArdourHSpacer
was packed in their place)
* add spacer at the bottom of the window to not prevent
spreading out of clocks or other elements.
Strumming now happens to notes that start at the same time, based on
note value. Additionally, rather than moving notes, the start times get
moved so that they end at the same time. Any notes that get cut down to
nothing (or less) are given a length of one tick while maintaining the
same end time.
* fix HTML </br> -> <br/>
* add a doctype (render in normal mode, not quiksmode)
* add CSS to match prior display from quicksmode
* add pagebreak before action-list
This fixes bug, when a button has both a controllable and
a toggle action assigned. Previously only the visual state
was updated. e.g. monitor section mute button.
When "cut all" was toggled (e.g. Control surface, or a Lua script:
`Session:monitor_out():monitor_control():set_cut_all(true)`,
The action state itself remained unchanged. Also the button
in the application remained unchanged since that button does
not :watch() the controllable.
This fixes a crash when removing and re-adding regionFX.
Removing all FX clears the _readcache BufferSet
(see AudioRegion::remove_plugin).
BufferSet::clear() calls _buffers.clear(); leading to a assert/crash
when adding a new regionFX plugin which calls BufferSet::ensure_buffers.
Filling the CC dropdown menus of the editor's pianroll
bottom attachment can take ages.. So only do that when
the bottom pane is actually visible.
This will need more work, since it's still slow, and the
menu is also not correctly using sub-menus.