13
0
Commit Graph

14338 Commits

Author SHA1 Message Date
39c253c590 provide (Static)ActionMapOwner::action_map() 2018-12-10 08:34:00 -05:00
dd2e80467b
"only" 1048576 -- sounds like it's not sufficient 2018-12-09 01:27:55 +01:00
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
19cb8cf138
Fix progress report when resampling to fixed-point on import 2018-12-07 04:41:22 +01:00
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
dd4c788d3e add syntactic sugar for fetching toggle and radio actions 2018-12-06 22:12:34 -05:00
eb48c14ec4 some ActionMap infrastructure to start removing ActionManager 2018-12-05 17:33:05 -05:00
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
c2652437da
Skip silent sources on session-archive -- fixes #7699 2018-12-05 16:54:13 +01:00
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
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
aa8128cdf5
Fix logic-error in d1cf2163: hide info for optimized builds 2018-12-04 17:06:13 +01:00
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
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
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
ae4604a24b
Implement AU plugin-preset removal 2018-12-02 01:37:33 +01:00
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
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
d53af10c92
AU: mark preset dirty when parameter changes 2018-12-01 05:36:33 +01:00
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
f443626daa
Fix a tiny memory leak, add_instant_xml() copies the node 2018-11-29 14:25:52 +01:00
fc24b9f0b7
Fix uninitialized variable 2018-11-29 02:10:08 +01:00
a22a501537
NO-OP: whitespace 2018-11-29 02:07:29 +01:00
1759d1c9c9
Fix a tiny memory-leak when calling vfork 2018-11-29 02:06:42 +01:00
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
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
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
81857a947c
Consolidate ambiguous engine API calls
available(), connected(), running() were ill-defined and
used interchangeably.
2018-11-28 15:24:47 +01:00
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
dce81aecc5
Prevent deadlock when removing routes w/o engine 2018-11-26 03:31:02 +01:00
ae2a6175cc
Don't allow to add/remove monitor-section w/o engine
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.
2018-11-26 03:15:14 +01:00
13c984c216
Fix various issues when the engine disconnects:
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.
2018-11-26 02:39:55 +01:00
cf98a75558
Do not allocate MIDI buffers for signal analysis
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.
2018-11-25 17:43:15 +01:00
5273c636ab
Fix Linux/PPC64 runtime
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.
2018-11-25 16:57:51 +01:00
3fd8dad9d6
Allow compilation with winpthreads -- closes #7691 2018-11-25 16:51:24 +01:00
01e0472481 Auditioner: check if removing synth succeeds
remove_processor() also calls drop_references, when successful.
2018-11-24 02:01:16 +01:00
948c5d0706 Handle some midnam edge-cases
Whitespace between XML nodes can result in "text" children.
Those need to be skipped in the patch-name list.
2018-11-23 22:43:26 +01:00
771ddcc86f NO-OP: whitespace and re-organization 2018-11-23 22:09:13 +01:00
2e3e183204 Load audition synth on demand
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.
2018-11-23 22:00:04 +01:00
8c4c97d1e2 Update Fluidsynth to v2.0.2 2018-11-23 16:05:19 +01:00
afee22d5fa Add/remove source(s) in our MSVC project (audiographer) 2018-11-23 07:27:32 +00:00
b7317eb1b3 Add/remove source(s) in our MSVC project (libardour) 2018-11-23 07:25:54 +00:00
04fe6d6fb4 Amend prev. commit, actually remove (1.0 - x) as was documented 2018-11-22 21:05:03 +01:00
7ed37d67ff Backwards compatible sndfile support
SFC_SET_COMPRESSION_LEVEL was only added in 2012 and only available in
libsndfile 1.0.26 or later.
2018-11-22 20:36:41 +01:00
f795462100 Save LV2 Port Property values locally
This keeps track of lv2:Parameter properties modified with Port:Set,
currently file-paths.
2018-11-22 14:58:44 +01:00
9326ced760 Allow to revert export-format from disk
This allows to restore ProfileManager's ExportFormatSpec without
re-instantiating the ProfileManager.
2018-11-21 23:14:52 +01:00
3d366053e2 Set encoder quality for existing ExportFormatSpecs 2018-11-21 21:19:01 +01:00
d6a92dc521 Include session-metadata in external/ffmpeg export 2018-11-21 00:03:36 +01:00
d169864b5b Prepare session-metadata export to external command 2018-11-20 23:56:12 +01:00
7b709b3cea Implement vorbis encoder quality
This also prepares for codec-quality defaults, but
ExportFormatSpecification does not yet set those for previously unset
or new formats/presets.
2018-11-20 03:21:17 +01:00