Age | Commit message (Collapse) | Author |
|
The ToggleAction has a lifetime of the UI, independent of the
CheckOption widget. The CheckOption needs to unsubscribe from the
signal_toggled() signal when it is deleted.
Also a CheckOption without a Action makes no sense. require _action
to be give at instantiation time.
|
|
|
|
|
|
Previously this worked since gmsynth was sorted after reasonably synth
|
|
Add Mixer-specific view keybindings for list, vca, mon. (thanks to: the_CLA)
Move monitor keybindings (mute, dim, mono) to be globally-accessible.
Implement new mixer-specific actions to show/hide monitor,vcas,mixbuses (the_CLA)
Move monitor funcs (mute,dim,mono) to globally-accessible actions.
Make a new Monitor group insted of using Transport group.
Allow use-monitor-section to be controlled by both menu and session-options dialog.
|
|
|
|
ResampledImportableSource::read() returns audio-frames;
multiplication by number of channels read beyond the buffer.
|
|
|
|
|
|
Previously Editor::instant_save() returned if no session was loaded,
effectively Config->add_instant_xml(get_state()); was never called.
instant save() is called early on, in Editor's c'tor before the editor
is realized and saves invalid window-size and window-state, which
are used later.
|
|
|
|
under some circumstances, e.g. session-exit it is possible to to have
inconsistent information
ARDOUR_UI::instance()->session_loaded == true
&& ARDOUR_UI::instance()->the_session() == NULL
This lead to a crash on MacOS/X. stopping the engine at exit may destory
an Aggregate Device, leading to DeviceListChanged which in turn updates
the engine-dialog..
else if (ARDOUR_UI::instance()->session_loaded) {
float active_sr = ARDOUR_UI::instance()->the_session()->nominal_sample_rate ();
|
|
|
|
|
|
|
|
This is more useful when replacing ActionManager::get_action
|
|
e.g. reMID.lv2 has only a atom/file-property and no control-inputs.
|
|
|
|
This fixes issues with analysis and archiving that rely on a readable
to return 0.
Note however that createSilent() uses max_samplecnt (INT64_MAX) by
default. This relies on a region setting the length of its missing
source.
|
|
This probably no real world effect since there is a mutex in the
loop that acts as a memory barrier.
|
|
|
|
|
|
|
|
|
|
These processors don't have a UI, so their load stats are not easily
visible. The stats can still be queried via Lua API or DSP-load
overview window, so we retain this for debug builds.
|
|
Use AU's preset->presetNumber as identifier since std::map are sorted
this also indirectly sorts presets by preset-number. (user presets
start with a '/' and are listed first, sorted by name).
Since Presets are now identified by URI on session load (53a0199a0)
and AU user-presets can added/be removed (since ae4604a24b7), simple
sequential numbering is no longer an option.
|
|
This works around async parameter-changed signal emission when loading
an AU preset. A simple timeout is used to delay making the preset
as modified.
|
|
|
|
|
|
This checks if the preset is actually available on the given system
and also sets the user-flag correctly.
|
|
This is a step in the right direction: first load the preset and
only if preset-loading was successful mark it as loaded.
This still does not properly unset "parameter_changed_since_last_preset".
AU signals "kAudioUnitEvent_ParameterValueChange" later in the event-loop.
|
|
|
|
load_property_list() takes a file-path (not URI). Actually it's not
clear why we've ever used a `file:///` URI internally.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There are two cases:
(A) Proxy is created first, dialog is created later on demand
(B) Dialog is created and directly registers its window as proxy
In (B) the dialog is usually on the stack and destroyed when the
ArdourDialog instances leaves scope. In that case ~ArdourDialog()
is called and the proxy remained.
Destroying the proxy does destroy the registered window in ~WindowProxy()
If ArdourDialog's d'tor itself deletes the proxy it would recurse into
itself. Existing APIs e.g. drop_window() likewise delete the window and
cannot be safely called from ~ArdourDialog.
|
|
|
|
|
|
|
|
This fixes a memory-leak (_midi_buf was allocated in DiskIOProc
but only delete in DiskReader). Also skip midi-refill early on
|
|
Disk-writer run() can concurrently use the ringbuffer after it was
free()ed by the butler thread.
|
|
* PortEngine::available() implementation
* AudioEngine::connected() wrapper
Eventually we may re-introduce PortEngine::available along
with a libardour internal port-engine.
|
|
available(), connected(), running() were ill-defined and
used interchangeably.
|
|
|
|
|
|
|