ardour.git
3 years agoOnly show user-presets in favorite sidebar master
Robin Gareus [Tue, 18 Dec 2018 13:05:57 +0000 (14:05 +0100)]
Only show user-presets in favorite sidebar

Plugins can have hundreds of factory presets, or in case of VST
useless "default" program/presets. Those just clutter up the favorite
plugin-list.

3 years agoWouldn't it be nice if plugin presets had a description/comment?
Robin Gareus [Tue, 18 Dec 2018 12:35:39 +0000 (13:35 +0100)]
Wouldn't it be nice if plugin presets had a description/comment?

3 years agoAdd LV2 option/extension for plugin thread sched priority
Robin Gareus [Tue, 18 Dec 2018 12:30:31 +0000 (13:30 +0100)]
Add LV2 option/extension for plugin thread sched priority

This allows plugins that need threads to process to configure their
thread priority to not interfere with the host's process threads.

3 years agoMSVC won't allow us to erase an item that's managed by 'const_iterator'
John Emmas [Mon, 17 Dec 2018 09:32:19 +0000 (09:32 +0000)]
MSVC won't allow us to erase an item that's managed by 'const_iterator'

3 years agoptformat: Update to 877fa28 - more endian resilient && pt5 fixes
Damien Zammit [Sun, 16 Dec 2018 04:03:28 +0000 (15:03 +1100)]
ptformat: Update to 877fa28 - more endian resilient && pt5 fixes

3 years agoNO-OP: whitespace
Robin Gareus [Sun, 16 Dec 2018 03:15:49 +0000 (04:15 +0100)]
NO-OP: whitespace

3 years agoRemove cruft: previous set_value_unchecked optimization
Robin Gareus [Sun, 16 Dec 2018 03:14:31 +0000 (04:14 +0100)]
Remove cruft: previous set_value_unchecked optimization

3 years agoOptimize automation-event process splitting
Robin Gareus [Sun, 16 Dec 2018 03:07:55 +0000 (04:07 +0100)]
Optimize automation-event process splitting

Use RCU of automated parameter when looking for next automation event
to use for split processing. This speeds up PluginInsert processing
when rolling for plugins with many not-automated parameters.

3 years agoOptimize plugin-processing for non-automated params
Robin Gareus [Sun, 16 Dec 2018 03:01:42 +0000 (04:01 +0100)]
Optimize plugin-processing for non-automated params

Keep a dedicated list of automated parameters to evaluate in realtime.
This fixes a performance issue with plugins that have many controls
with only few of them being automated.

3 years agofix issue with ProcessorBox inside MonitorSection (session was not set correctly)
Paul Davis [Sat, 15 Dec 2018 16:58:37 +0000 (11:58 -0500)]
fix issue with ProcessorBox inside MonitorSection (session was not set correctly)

3 years agoFix Mixbus action fc83d044f8 & 65bda27d4 rebase ordering
Robin Gareus [Thu, 13 Dec 2018 17:36:31 +0000 (18:36 +0100)]
Fix Mixbus action fc83d044f8 & 65bda27d4 rebase ordering

3 years agoVideo-Frame (not sample)
Robin Gareus [Thu, 13 Dec 2018 16:44:58 +0000 (17:44 +0100)]
Video-Frame (not sample)

3 years agoFix ExportFormatSpecification copy-c'tor
Robin Gareus [Thu, 13 Dec 2018 16:07:08 +0000 (17:07 +0100)]
Fix ExportFormatSpecification copy-c'tor

This initialize some otherwise uninitalized variables and may fix
cue/toc export oddities

3 years agoLCXL: some more small tweaks
Jan Lentfer [Wed, 12 Dec 2018 15:46:36 +0000 (16:46 +0100)]
LCXL: some more small tweaks

    * assign Pan knob to Comp thresh as secondary function
    * make cancel_all_solo and cancel_all_mute work in device mode, too

3 years ago replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 16:22:38 +0000 (11:22 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls

3 years ago replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 16:12:40 +0000 (11:12 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls

3 years ago replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 16:00:43 +0000 (11:00 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls

3 years agoreplace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 13:41:57 +0000 (08:41 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls

3 years agoremove explicit use of ::cast_dynamic() from Gtk::Action to Gtk::ToggleAction
Paul Davis [Wed, 12 Dec 2018 04:43:22 +0000 (23:43 -0500)]
remove explicit use of ::cast_dynamic() from Gtk::Action to Gtk::ToggleAction

3 years agomore changes flowing from a persistent MonitorSection object
Paul Davis [Tue, 11 Dec 2018 17:25:31 +0000 (12:25 -0500)]
more changes flowing from a persistent MonitorSection object

3 years agouse syntactic sugar
Paul Davis [Tue, 11 Dec 2018 17:25:12 +0000 (12:25 -0500)]
use syntactic sugar

3 years agodo not reset session for MonitorSection just because monitor out was removed
Paul Davis [Tue, 11 Dec 2018 17:24:49 +0000 (12:24 -0500)]
do not reset session for MonitorSection just because monitor out was removed

3 years agouse correct path for various actions/bindings in monitor section
Paul Davis [Tue, 11 Dec 2018 17:23:23 +0000 (12:23 -0500)]
use correct path for various actions/bindings in monitor section

3 years agofix commentary
Paul Davis [Tue, 11 Dec 2018 17:22:51 +0000 (12:22 -0500)]
fix commentary

3 years agomake session/Config now responsible for adding/removing a monitor section
Paul Davis [Tue, 11 Dec 2018 17:22:28 +0000 (12:22 -0500)]
make session/Config now responsible for adding/removing a monitor section

3 years agofull (?) set of changes required to make MonitorSection an "always-there" component...
Paul Davis [Tue, 11 Dec 2018 15:28:47 +0000 (10:28 -0500)]
full (?) set of changes required to make MonitorSection an "always-there" component of the MixerUI

Obviously, it is not always shown, but it always exists, which means that its actions are always accessible

3 years agochange action group owner pointer to be the relevant keybindings; reorder setting...
Paul Davis [Tue, 11 Dec 2018 10:06:26 +0000 (05:06 -0500)]
change action group owner pointer to be the relevant keybindings; reorder setting keybindings value and defining actions

The reorder is required so that the value of "bindings" has been set and is meaningful

3 years agoadd ActionManager::get_actions() to fetch all actions created in ActionGroups with...
Paul Davis [Tue, 11 Dec 2018 10:05:09 +0000 (05:05 -0500)]
add ActionManager::get_actions() to fetch all actions created in ActionGroups with a given "owner" value

3 years agoadd nominal owners for all action groups
Paul Davis [Mon, 10 Dec 2018 23:44:05 +0000 (18:44 -0500)]
add nominal owners for all action groups

Note: this is not yet correct. The owner (pointer) values passed in are not yet usable

3 years agofix more Window/show-* to Common/show-* details
Paul Davis [Mon, 10 Dec 2018 23:43:35 +0000 (18:43 -0500)]
fix more Window/show-* to Common/show-* details

3 years agoremove static from some members, after MonitorSection is now persistent
Paul Davis [Mon, 10 Dec 2018 23:42:35 +0000 (18:42 -0500)]
remove static from some members, after MonitorSection is now persistent

3 years agono longer delete and recreate MonitorSection when it is removed/added to a Session
Paul Davis [Mon, 10 Dec 2018 23:41:59 +0000 (18:41 -0500)]
no longer delete and recreate MonitorSection when it is removed/added to a Session

3 years agoadd basic concept of an "owner" for an action group, to allow later grouping
Paul Davis [Mon, 10 Dec 2018 23:40:31 +0000 (18:40 -0500)]
add basic concept of an "owner" for an action group, to allow later grouping

3 years agofix Window->Common move for show-mixer
Paul Davis [Mon, 10 Dec 2018 23:40:16 +0000 (18:40 -0500)]
fix Window->Common move for show-mixer

3 years agoadd ActionManager::set_sensitive() for Gtk::ActionGroup
Paul Davis [Mon, 10 Dec 2018 23:40:00 +0000 (18:40 -0500)]
add ActionManager::set_sensitive() for Gtk::ActionGroup

3 years agoshow-editor and show-mixer actions are now part of Common, not Window or Mixer action...
Paul Davis [Mon, 10 Dec 2018 23:39:14 +0000 (18:39 -0500)]
show-editor and show-mixer actions are now part of Common, not Window or Mixer action groups

This is a bit arbitary but they are supposed to be invokable from anywhere, and since they control Tabbables and note
pure windows, they are not part of WM::Manager's purview (Window/* actions). Thus ... Common

3 years agoreorder ARDOUR_UI action registration and adding tabbables to the main window, to...
Paul Davis [Mon, 10 Dec 2018 23:19:31 +0000 (18:19 -0500)]
reorder ARDOUR_UI action registration and adding tabbables to the main window, to avoid action-not-found in tabbable_state_change()

3 years agoremove method and inline its contents. Nothing gained by wrapping this up
Paul Davis [Mon, 10 Dec 2018 21:24:27 +0000 (16:24 -0500)]
remove method and inline its contents. Nothing gained by wrapping this up

3 years agoremove long-lived bug that tried to make a non-existent action insensitive
Paul Davis [Mon, 10 Dec 2018 21:19:54 +0000 (16:19 -0500)]
remove long-lived bug that tried to make a non-existent action insensitive

3 years agouse ActionManager namespace, rather than ActionMap objects, and remove all per-contex...
Paul Davis [Mon, 10 Dec 2018 13:33:31 +0000 (08:33 -0500)]
use ActionManager namespace, rather than ActionMap objects, and remove all per-context action maps

3 years agouse ActionManager namespace, rather than ActionMap objects
Paul Davis [Mon, 10 Dec 2018 13:32:56 +0000 (08:32 -0500)]
use ActionManager namespace, rather than ActionMap objects

3 years agochange ActionManager::find_action() back to ActionManager::get_action()
Paul Davis [Mon, 10 Dec 2018 13:32:11 +0000 (08:32 -0500)]
change ActionManager::find_action() back to ActionManager::get_action()

This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code

3 years agoconsolidate ActionMap and ActionManager APIs into a single namespace
Paul Davis [Mon, 10 Dec 2018 13:22:10 +0000 (08:22 -0500)]
consolidate ActionMap and ActionManager APIs into a single namespace

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agouse new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action

3 years agoprovide (Static)ActionMapOwner::action_map()
Paul Davis [Fri, 7 Dec 2018 21:05:56 +0000 (16:05 -0500)]
provide (Static)ActionMapOwner::action_map()

4 years agoUnhardode log-message domain when logging to stdout
Robin Gareus [Sun, 9 Dec 2018 00:31:27 +0000 (01:31 +0100)]
Unhardode log-message domain when logging to stdout

4 years ago"only" 1048576 -- sounds like it's not sufficient
Robin Gareus [Sun, 9 Dec 2018 00:27:55 +0000 (01:27 +0100)]
"only" 1048576 -- sounds like it's not sufficient

4 years agoBetter version of 9ccc56e1625, implicit signal disconnect
Robin Gareus [Sat, 8 Dec 2018 22:39:50 +0000 (23:39 +0100)]
Better version of 9ccc56e1625, implicit signal disconnect

4 years agoProperly keep track of Window Visibility, action state
Robin Gareus [Sat, 8 Dec 2018 21:38:03 +0000 (22:38 +0100)]
Properly keep track of Window Visibility, action state

This fixes inconsistent WM::Proxy state when a window is destroyed
Specifically "session-options-editor" when the session is unloaded;
previously "toggle-session-options-editor" was never unset.

4 years agoFix CheckOption crash on session-reload
Robin Gareus [Sat, 8 Dec 2018 20:18:54 +0000 (21:18 +0100)]
Fix CheckOption crash on session-reload

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.

4 years agoNO-OP: whitespace and some guaranteed assertion removal
Robin Gareus [Sat, 8 Dec 2018 19:17:01 +0000 (20:17 +0100)]
NO-OP: whitespace and some guaranteed assertion removal

4 years agoFix crash when closing session, recursive mon-section removal
Robin Gareus [Sat, 8 Dec 2018 19:15:53 +0000 (20:15 +0100)]
Fix crash when closing session, recursive mon-section removal

4 years agoFix gmsynth detection
Robin Gareus [Sat, 8 Dec 2018 16:04:32 +0000 (17:04 +0100)]
Fix gmsynth detection

Previously this worked since gmsynth was sorted after reasonably synth

4 years agoTweaks to Mixer and Monitor keybindings:
Ben Loftis [Tue, 4 Dec 2018 00:55:52 +0000 (18:55 -0600)]
Tweaks to Mixer and Monitor keybindings:
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.

4 years agoFix progress report when resampling to fixed-point on import
Robin Gareus [Fri, 7 Dec 2018 03:41:22 +0000 (04:41 +0100)]
Fix progress report when resampling to fixed-point on import

4 years agoFix importing to a fixed-point format with resampling
Robin Gareus [Fri, 7 Dec 2018 03:15:55 +0000 (04:15 +0100)]
Fix importing to a fixed-point format with resampling

ResampledImportableSource::read() returns audio-frames;
multiplication by number of channels read beyond the buffer.

4 years agoadd syntactic sugar for fetching toggle and radio actions
Paul Davis [Fri, 7 Dec 2018 03:12:27 +0000 (22:12 -0500)]
add syntactic sugar for fetching toggle and radio actions

4 years agoRemove redundant call (there's no session, nothing to save)
Robin Gareus [Fri, 7 Dec 2018 02:46:58 +0000 (03:46 +0100)]
Remove redundant call (there's no session, nothing to save)

4 years agoFix editor sizing issue introduced in 4dc65e66
Robin Gareus [Fri, 7 Dec 2018 02:36:48 +0000 (03:36 +0100)]
Fix editor sizing issue introduced in 4dc65e66

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.

4 years agoPrefer testing the session instead of using a global variable
Robin Gareus [Thu, 6 Dec 2018 01:23:53 +0000 (02:23 +0100)]
Prefer testing the session instead of using a global variable

4 years agoFix inconsistent session-check
Robin Gareus [Thu, 6 Dec 2018 01:23:09 +0000 (02:23 +0100)]
Fix inconsistent session-check

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 ();

4 years agoanother replacement of ActionManager::get_action() by ActionMap::find_action()
Paul Davis [Wed, 5 Dec 2018 22:48:34 +0000 (17:48 -0500)]
another replacement of ActionManager::get_action() by ActionMap::find_action()

4 years agostart using ActionMap in preference to ActionManager
Paul Davis [Wed, 5 Dec 2018 22:32:35 +0000 (17:32 -0500)]
start using ActionMap in preference to ActionManager

4 years agosome ActionMap infrastructure to start removing ActionManager
Paul Davis [Wed, 5 Dec 2018 22:32:02 +0000 (17:32 -0500)]
some ActionMap infrastructure to start removing ActionManager

4 years agoadd new variant of ActionMap::find_action()
Paul Davis [Wed, 5 Dec 2018 20:22:48 +0000 (15:22 -0500)]
add new variant of ActionMap::find_action()

This is more useful when replacing ActionManager::get_action

4 years agoFix generic plugin UI for plugins with only properties
Robin Gareus [Wed, 5 Dec 2018 19:18:56 +0000 (20:18 +0100)]
Fix generic plugin UI for plugins with only properties

e.g. reMID.lv2 has only a atom/file-property and no control-inputs.

4 years agoSkip silent sources on session-archive -- fixes #7699
Robin Gareus [Wed, 5 Dec 2018 15:05:56 +0000 (16:05 +0100)]
Skip silent sources on session-archive -- fixes #7699

4 years agoPrevent endless read of silent files
Robin Gareus [Wed, 5 Dec 2018 15:04:29 +0000 (16:04 +0100)]
Prevent endless read of silent files

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.

4 years agoUse atomic read for an atomic variable
Robin Gareus [Tue, 4 Dec 2018 21:12:43 +0000 (22:12 +0100)]
Use atomic read for an atomic variable

This probably no real world effect since there is a mutex in the
loop that acts as a memory barrier.

4 years agoTab to prev/next name-entry: skip only rec-armed tracks
Robin Gareus [Tue, 4 Dec 2018 21:07:27 +0000 (22:07 +0100)]
Tab to prev/next name-entry: skip only rec-armed tracks

4 years agoFix logic-error in d1cf2163: hide info for optimized builds
Robin Gareus [Tue, 4 Dec 2018 16:06:13 +0000 (17:06 +0100)]
Fix logic-error in d1cf2163: hide info for optimized builds

4 years agoExpose DSP load window
Robin Gareus [Mon, 3 Dec 2018 21:45:22 +0000 (22:45 +0100)]
Expose DSP load window

4 years agoDon't show DSP stats of inserts that don't collect them.
Robin Gareus [Mon, 3 Dec 2018 21:34:14 +0000 (22:34 +0100)]
Don't show DSP stats of inserts that don't collect them.

4 years agoSpecial case Mixbus Chanstrip for load calculation
Robin Gareus [Mon, 3 Dec 2018 21:29:25 +0000 (22:29 +0100)]
Special case Mixbus Chanstrip for load calculation

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.

4 years agoConsistent AU factory Preset IDs
Robin Gareus [Mon, 3 Dec 2018 19:45:06 +0000 (20:45 +0100)]
Consistent AU factory Preset IDs

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.

4 years agoDon't invalidate AU preset on load
Robin Gareus [Sun, 2 Dec 2018 01:04:21 +0000 (02:04 +0100)]
Don't invalidate AU preset on load

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.

4 years agoGUI Updates for plugin save/delete operations
Robin Gareus [Sun, 2 Dec 2018 00:38:14 +0000 (01:38 +0100)]
GUI Updates for plugin save/delete operations

4 years agoImplement AU plugin-preset removal
Robin Gareus [Sun, 2 Dec 2018 00:37:33 +0000 (01:37 +0100)]
Implement AU plugin-preset removal

4 years agoRestore actual plugin-preset on session-load
Robin Gareus [Sun, 2 Dec 2018 00:36:32 +0000 (01:36 +0100)]
Restore actual plugin-preset on session-load

This checks if the preset is actually available on the given system
and also sets the user-flag correctly.

4 years agoTowards fixing AU preset invalidation
Robin Gareus [Sat, 1 Dec 2018 23:26:57 +0000 (00:26 +0100)]
Towards fixing AU preset invalidation

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.

4 years agoAU: mark preset dirty when parameter changes
Robin Gareus [Sat, 1 Dec 2018 04:36:33 +0000 (05:36 +0100)]
AU: mark preset dirty when parameter changes

4 years agoFix AU preset handling
Robin Gareus [Sat, 1 Dec 2018 04:33:26 +0000 (05:33 +0100)]
Fix AU preset handling

load_property_list() takes a file-path (not URI). Actually it's not
clear why we've ever used a `file:///` URI internally.

4 years agoNight of the typos III (amend prev 2 commits)
Robin Gareus [Sat, 1 Dec 2018 02:21:45 +0000 (03:21 +0100)]
Night of the typos III (amend prev 2 commits)

4 years agoAlso use xjadeo 64bit windows version
Robin Gareus [Sat, 1 Dec 2018 02:13:59 +0000 (03:13 +0100)]
Also use xjadeo 64bit windows version

4 years agoHarvid and xjadeo now feature 32/64bit window version(s)
Robin Gareus [Fri, 30 Nov 2018 23:56:20 +0000 (00:56 +0100)]
Harvid and xjadeo now feature 32/64bit window version(s)

4 years agoFreeze harvid/xjadeo PPC version
Robin Gareus [Fri, 30 Nov 2018 17:10:35 +0000 (18:10 +0100)]
Freeze harvid/xjadeo PPC version

4 years agofix incorrect accumulation of export video options each time the dialog is used
Paul Davis [Thu, 29 Nov 2018 22:36:19 +0000 (17:36 -0500)]
fix incorrect accumulation of export video options each time the dialog is used

4 years agoFix a tiny memory leak, add_instant_xml() copies the node
Robin Gareus [Thu, 29 Nov 2018 13:25:52 +0000 (14:25 +0100)]
Fix a tiny memory leak, add_instant_xml() copies the node

4 years agoDelete temporary Window Proxy for dialogs
Robin Gareus [Thu, 29 Nov 2018 13:25:22 +0000 (14:25 +0100)]
Delete temporary Window Proxy for dialogs

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.

4 years agoFix uninitialized variable
Robin Gareus [Thu, 29 Nov 2018 01:10:08 +0000 (02:10 +0100)]
Fix uninitialized variable

4 years agoNO-OP: whitespace
Robin Gareus [Thu, 29 Nov 2018 01:07:29 +0000 (02:07 +0100)]
NO-OP: whitespace

4 years agoFix a tiny memory-leak when calling vfork
Robin Gareus [Thu, 29 Nov 2018 01:06:42 +0000 (02:06 +0100)]
Fix a tiny memory-leak when calling vfork

4 years agoDisk I/O: only allocate midi-buffer if needed
Robin Gareus [Thu, 29 Nov 2018 01:05:26 +0000 (02:05 +0100)]
Disk I/O: only allocate midi-buffer if needed

This fixes a memory-leak (_midi_buf was allocated in DiskIOProc
but only delete in DiskReader). Also skip midi-refill early on

4 years agoFix a potential memory-corruption
Robin Gareus [Wed, 28 Nov 2018 20:41:08 +0000 (21:41 +0100)]
Fix a potential memory-corruption

Disk-writer run() can concurrently use the ringbuffer after it was
free()ed by the butler thread.