* If the use-time-rulers-to-zoom option is enabled, -all- cursor drags can zoom.
* Behavior has been tweaked so it is easy to scroll without zooming, if you want to.
It would be nice to change get_audio_buffer() to not set
AudioBuffer::_written to false (all but one other user of this API also
only get read-only data), but that requires chaning the rationale of the
underlying ::set_data() API.
Currently, the startup script for GNU/Linux adds the current working directory
to LD_LIBRARY_PATH if LD_LIBRARY_PATH is not empty or unset.
For example, if LD_LIBRARY_PATH is set to "/lib" when the current script is
run, it will be set to "<install-dir>/lib::/lib", which includes the current
working directory as one of the paths.
This commit removes the extra colon added to LD_LIBRARY_PATH (without changing
the script's behavior of setting LD_LIBRARY_PATH to an empty string when it is
unset).
Depend on Changed() signals alone, which are usually much less frequent
than rapid-timer events.
As side-effect we now need to make the widgets insensitive when
playing automation. Previously the user could not change the value because
the Timer periodically reset it.
Rule #89: The *owner* of each automation-control is responsible to
evaluate automation of automated automation-controls (and emit Changed()
signals to notify the GUI and slaved controls).
This can happen during run(), when the Processor evaluates automation
(eg. PluginInsert does that), but needs to regardless, every cycle.
Emit Changed signal for GainControl
This follow the same concept as PluginInsert: The Changed signal
is called on demand when evaluating automation.
Note: MuteControl already implemented this,
This removes the special case of boolean_automation_run().
Likewise this removes special-cases for actually_set_value() during
automation playback.