Age | Commit message (Collapse) | Author |
|
A peak rectangle in the mixer strip is ruled by "gtk_bright_indicator". In the previous commit I mixed up this item with "meterbridge label" & "meterbridge peakindicator". This commit changes "gtk_bright_indicator" from white to red and returns "meterbridge label" & "meterbridge peakindicator" state to primordial. So now the peak rectangle in the mixer strip will be red when a sound peak has a place.
|
|
- Fixes bug where selecting 'Shift' as a modifier was ignored.
|
|
|
|
|
|
|
|
So that they never get out of sync, and translators don't get confused.
Also replace some N_() where X_() was really intended.
|
|
|
|
The existing code relies on AutomationControls for getting parameter
changes and update the UI accordingly. One case where this doesn't yet
work is preset loading, where ARDOUR::Plugin is responsible for actually
loading the preset but doesn't notify the changes to AutomationControls.
Since the input_controls vector now contains all ControlUI's that rely on
AutomationControls to get updates, just listen to Plugin::PresetLoaded()
and trigger an update of all elements in input_controls.
This is temporary until a better solution is devised to make
AutomationControls aware of preset loading.
|
|
Also merge the ControlUI local layout of dropdows with the local layout
of other control types (except FileButton).
|
|
The super rapid timer was disconnected by GenericPluginUI::stop_updating
but never connected again, so the generic UI worked often without
getting periodic update triggers anyway.
Try to disable the mechanism altogether, and see if there are updating
glitches.
|
|
It makes no sense to check for the validity of mcontrol only for
controller creation, since the remainder of the code assumes that the
controller will have been created correctly.
Replace that by an assert.
|
|
Now that there isn't an early return anymore for Dropdowns, the common
path takes care of connecting the display update code to the correct
signal.
|
|
|
|
That list is used to set the automation state of all automatable
controls when the global automation state is changed with the buttons at
the top of the generic UI window. The controls were added to the list
regardless of the automatable status, and some controls were even added
multiple times: once in build_control_ui() and once in build().
Since changing the state of non-automatable controls is wrong, only add
the control UI in build_control_ui() which already has the knowledge of
automatable or not.
|
|
Assert that all FileChooserButton created are for properties, because
the remaining code assumes that it should setup things for a property.
|
|
Since it is the only case that's completely different from others in
that it only handles properties, and uses a different signal path for
updates, don't put it in the middle, but as the first case to check for.
Code move only, no behavior change (since it should be exclusive to all
other cases anyway).
|
|
The code connected the callback to the PropertyChanged signal from the
plugin once per filepath control created. Should the plugin have several
files to open, this would be at best wasteful and at worst racy.
Connect the callback a single time, since the same callback handles all
property updates that we're interested in. Also rename the methods,
members and typedefs so that it's clear what the code is trying to do.
|
|
|
|
|
|
When programmatically showing a pane, instead of directly asking the
preferences notebook to show the pane, search for the asked path in the
panes tree, and select it. Since OptionEditor listens to selection
changes in its TreeView, the correct pane will be shown, with the added
benefit that the corresponding section in the tree will be highlighted
so that the user knows which pane is currently shown.
|
|
|
|
Solve http://tracker.ardour.org/view.php?id=6906
|
|
|
|
|
|
|
|
|
|
|
|
When freq was changed to be an integer, the conversion to kHz became a
truncation. Divide by the float 1000.0 to pass the correct value to the
stringstream formatting routine.
|
|
For people who need more precise frequency or response amplitude, show
the values corresponding to the point under the mouse.
|
|
|
|
|
|
|
|
The trim knob has been designed to operate only on audio channels. If
the bus has none, hide the knob that would otherwise have no effect at
all.
Factor the trim control show/hide code out of MixerStrip::set_route(),
and also call that code in response to I/O changes in the route.
|
|
|
|
* replace old Gdk graphics context with cairo drawing
* cache graph on an image-surface
* allow partial exposure
* add annotation overlay
|
|
|
|
|
|
drag.
|
|
This fixes a bug of midi-colors being used for audio-meters or
vice versa when when the total channel count remained identical
|
|
|
|
|
|
PortMatrix is able to filter out ports that have an unwanted datatype, but
if a Bundle is added that has no port at all with a wanted datatype then
it is not weeded out correctly (and even if it were, there's no chance
that it will legitimately appear in the UI). Don't add that kind of
Bundle in the first place.
|
|
Now that busses can contain MIDI, this special casing doesn't make sense
anymore.
|
|
at application exit, there may otherwise be a race condition,
queue draw could be scheduled for a widget that's no longer present.
|
|
|
|
|
|
|
|
|
|
|
|
|