Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
These are generally places where tracks/busses are created or port
connections change.
|
|
|
|
|
|
|
|
Session::new_route_from_template() unconditionally calls
IO::disable_connecting(), and needs to be reverted likewise
(no RAII here).
|
|
|
|
Adding/removing the Monitor section changes port-connections,
a port-engine is needed to establish connections.
Ideally we'd allow this and queue for connection changes. This
will however require deep changes.
Also toggling the monitor-section on/off/on w/o engine can later
result in failure to register ports. Due to lack of engine-signals
not all shared_ptr<> port references are dropped.
|
|
Previously Port::PortDrop was never handled.
The signal was disconnected directly when the connection
is re-used by Port::PortSignalDrop.
Ports::drop() was not called when the engine was stopped
or disconnected, and port-handles were not invalidated.
This lead to crashes whenever a port-related operation was performed
while the engine was stopped. e.g. adding/removing tracks or plugins
(latency recompute, notify port-engine) and various other operations.
|
|
~OptionEditor() already frees all components on every page.
|
|
At this point in time MIDI buffers are vastly over-sized.
They include VST and LV2 event structure. This added about a MB per
plugin for no benefit.
|
|
This fixes an error while loading shared libraries: libardour.so
R_PPC64_ADDR32 reloc at 0x... for symbol `' out of range
Treating a local as an immediate value in asm code makes the library
non-relocatable.
|
|
|
|
|
|
remove_processor() also calls drop_references, when successful.
|
|
Whitespace between XML nodes can result in "text" children.
Those need to be skipped in the patch-name list.
|
|
|
|
This saves some memory (gmsynth loads a 30MB soundfont), and also
re-initializes the synth every time to gm defaults in case some
.mid changes patches or parameters.
|
|
|
|
|
|
|
|
|
|
|
|
SFC_SET_COMPRESSION_LEVEL was only added in 2012 and only available in
libsndfile 1.0.26 or later.
|
|
This is a bit of a playground implementation, the various `#if 0`
code-blocks should be removed.
|
|
This keeps track of lv2:Parameter properties modified with Port:Set,
currently file-paths.
|
|
|
|
|
|
Previously the ExportFormatDialog saved changes to disk on "save" but
did nothing on "cancel". The format changed *remained* modified in
memory, just not saved (until the ExportProfileManager is re-instantiated)
|
|
This allows to restore ProfileManager's ExportFormatSpec without
re-instantiating the ProfileManager.
|
|
|
|
|
|
|
|
|
|
|