Robin Gareus
e4304f3bf2
Wouldn't it be nice if plugin presets had a description/comment?
2018-12-18 14:13:15 +01:00
Robin Gareus
0a3fc4a87f
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.
2018-12-18 13:30:31 +01:00
John Emmas
0d55dad045
MSVC won't allow us to erase an item that's managed by 'const_iterator'
2018-12-17 09:32:19 +00:00
Damien Zammit
6c8abb26c8
ptformat: Update to 877fa28 - more endian resilient && pt5 fixes
2018-12-16 15:08:23 +11:00
Robin Gareus
f28ccd5e3a
NO-OP: whitespace
2018-12-16 04:25:25 +01:00
Robin Gareus
6a171eb847
Remove cruft: previous set_value_unchecked optimization
2018-12-16 04:25:24 +01:00
Robin Gareus
6b1b72a247
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.
2018-12-16 04:25:24 +01:00
Robin Gareus
e4d3ebfb66
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.
2018-12-16 04:25:20 +01:00
Robin Gareus
95a61717fa
Fix ExportFormatSpecification copy-c'tor
...
This initialize some otherwise uninitalized variables and may fix
cue/toc export oddities
2018-12-13 17:07:08 +01:00
Jan Lentfer
5d2a03578c
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
2018-12-12 18:14:48 +01:00
Paul Davis
360261f110
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
2018-12-12 11:12:48 -05:00
Paul Davis
758d0ca263
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
2018-12-12 10:08:01 -05:00
Paul Davis
639dff3a7c
make session/Config now responsible for adding/removing a monitor section
2018-12-11 12:22:28 -05:00
Paul Davis
e1b7a43139
add ActionManager::get_actions() to fetch all actions created in ActionGroups with a given "owner" value
2018-12-11 05:05:09 -05:00
Paul Davis
1de181479f
add basic concept of an "owner" for an action group, to allow later grouping
2018-12-10 18:40:31 -05:00
Paul Davis
4b0f0f913b
fix Window->Common move for show-mixer
2018-12-10 18:40:16 -05:00
Paul Davis
ab61c6837f
add ActionManager::set_sensitive() for Gtk::ActionGroup
2018-12-10 18:40:00 -05:00
Paul Davis
00df619d21
use ActionManager namespace, rather than ActionMap objects
2018-12-10 08:34:01 -05:00
Paul Davis
d1d8fd197d
change ActionManager::find_action() back to ActionManager::get_action()
...
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
2018-12-10 08:34:01 -05:00
Paul Davis
ad002d0de0
consolidate ActionMap and ActionManager APIs into a single namespace
2018-12-10 08:34:01 -05:00
Paul Davis
39c253c590
provide (Static)ActionMapOwner::action_map()
2018-12-10 08:34:00 -05:00
Robin Gareus
dd2e80467b
"only" 1048576 -- sounds like it's not sufficient
2018-12-09 01:27:55 +01:00
Robin Gareus
9004a0df7a
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.
2018-12-08 22:38:03 +01:00
Robin Gareus
19cb8cf138
Fix progress report when resampling to fixed-point on import
2018-12-07 04:41:22 +01:00
Robin Gareus
0284203551
Fix importing to a fixed-point format with resampling
...
ResampledImportableSource::read() returns audio-frames;
multiplication by number of channels read beyond the buffer.
2018-12-07 04:16:28 +01:00
Paul Davis
dd4c788d3e
add syntactic sugar for fetching toggle and radio actions
2018-12-06 22:12:34 -05:00
Paul Davis
eb48c14ec4
some ActionMap infrastructure to start removing ActionManager
2018-12-05 17:33:05 -05:00
Paul Davis
4d7e9d5706
add new variant of ActionMap::find_action()
...
This is more useful when replacing ActionManager::get_action
2018-12-05 17:33:05 -05:00
Robin Gareus
c2652437da
Skip silent sources on session-archive -- fixes #7699
2018-12-05 16:54:13 +01:00
Robin Gareus
863a6ade9e
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.
2018-12-05 16:04:29 +01:00
Robin Gareus
5f3672eef0
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.
2018-12-04 22:12:43 +01:00
Robin Gareus
aa8128cdf5
Fix logic-error in d1cf2163: hide info for optimized builds
2018-12-04 17:06:13 +01:00
Robin Gareus
d1cf21634f
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.
2018-12-03 22:43:02 +01:00
Robin Gareus
b285559767
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 ae4604a24b ), simple
sequential numbering is no longer an option.
2018-12-03 20:45:06 +01:00
Robin Gareus
6877ac820b
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.
2018-12-02 02:04:21 +01:00
Robin Gareus
ae4604a24b
Implement AU plugin-preset removal
2018-12-02 01:37:33 +01:00
Robin Gareus
53a0199a06
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.
2018-12-02 01:36:32 +01:00
Robin Gareus
3c7dea43af
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.
2018-12-02 00:26:57 +01:00
Robin Gareus
d53af10c92
AU: mark preset dirty when parameter changes
2018-12-01 05:36:33 +01:00
Robin Gareus
b66726fdc1
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.
2018-12-01 05:33:26 +01:00
Robin Gareus
f443626daa
Fix a tiny memory leak, add_instant_xml() copies the node
2018-11-29 14:25:52 +01:00
Robin Gareus
fc24b9f0b7
Fix uninitialized variable
2018-11-29 02:10:08 +01:00
Robin Gareus
a22a501537
NO-OP: whitespace
2018-11-29 02:07:29 +01:00
Robin Gareus
1759d1c9c9
Fix a tiny memory-leak when calling vfork
2018-11-29 02:06:42 +01:00
Robin Gareus
6fc2804414
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
2018-11-29 02:05:26 +01:00
Robin Gareus
dfbda9e0f6
Fix a potential memory-corruption
...
Disk-writer run() can concurrently use the ringbuffer after it was
free()ed by the butler thread.
2018-11-28 21:41:30 +01:00
Robin Gareus
076e9fddd4
Remove ambiguous API implementation
...
* PortEngine::available() implementation
* AudioEngine::connected() wrapper
Eventually we may re-introduce PortEngine::available along
with a libardour internal port-engine.
2018-11-28 15:32:40 +01:00
Robin Gareus
81857a947c
Consolidate ambiguous engine API calls
...
available(), connected(), running() were ill-defined and
used interchangeably.
2018-11-28 15:24:47 +01:00
Robin Gareus
5531a440c9
Fix stuck connection block when template load fails.
...
Session::new_route_from_template() unconditionally calls
IO::disable_connecting(), and needs to be reverted likewise
(no RAII here).
2018-11-26 21:45:06 +01:00
Robin Gareus
dce81aecc5
Prevent deadlock when removing routes w/o engine
2018-11-26 03:31:02 +01:00