13
0
Commit Graph

26953 Commits

Author SHA1 Message Date
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
df28a71252
Consolidate API, prefer ->running() 2018-11-28 15:19:39 +01:00
0805b6b925
Consolidate two more engine-checks 2018-11-28 15:17:57 +01:00
245d48dbd0
NO-OP: Clarify function name 2018-11-28 15:16:25 +01:00
76f9764a44
Use central method to check for engine for processor operations 2018-11-28 00:02:57 +01:00
f150f6c074
Use central method to check for engine where required
These are generally places where tracks/busses are created or port
connections change.
2018-11-28 00:01:50 +01:00
415721fa5b
Prepare central engine check and user notification 2018-11-27 23:57:53 +01:00
1d8dc009f7
Catch potential exceptions when adding tracks/busses 2018-11-27 13:19:34 +01:00
57d7b5de65
GUI limitation: Require engine to add/remove tracks/busses 2018-11-27 13:18:39 +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
4bbfb6ce50
Fix a double-free, introduced in b06713bd8e
~OptionEditor() already frees all components on every page.
2018-11-26 00:32:29 +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
bdc82f68e6
Bundle x42-limiter with binaries 2018-11-25 16:40:28 +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
f28b03c305 Add/remove source(s) in our MSVC project (gtk2_ardour) 2018-11-23 07:28:17 +00: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
e297951b30 Extend LV2UI-Request-Parameter File/Path GUI
This is a bit of a playground implementation, the various `#if 0`
code-blocks should be removed.
2018-11-22 15:02:35 +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
abf1f286d4 Fix LV2UI_Request_Parameter Feature URI 2018-11-22 06:12:54 +01:00
14c390ed02 Update codec-quality display when ExportFormat changes 2018-11-21 23:21:52 +01:00
555dcd11fd Properly revert FormatSpec changes on "cancel"
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)
2018-11-21 23:21:13 +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
07beca2852 Early prototype for _LV2UI_Request_Parameter extension 2018-11-21 02:27:18 +01:00
Olivier Humbert
a4d6f0ea39 Fix a window size potential issue 2018-11-21 00:06:37 +01:00
79731a716d Update GUI, use/remove meta-data methods that have been migrated to the backend 2018-11-21 00:05:13 +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
0268489c78 Vorbis Quality Config GUI 2018-11-20 03:35:25 +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
cdc5b88c91 Handle port-export report of unplayable files 2018-11-20 00:44:40 +01:00
731a745c1c Add some mp3 export presets 2018-11-20 00:21:51 +01:00
dfef8b7f62 FFMPEG/MP3 encoder quality select GUI 2018-11-20 00:21:15 +01:00
27e0e78e1d Implement FFMPEG/MP3 export-format spec and profile 2018-11-20 00:21:01 +01:00
5fa05b403c Prepare export-format codec-quality setting 2018-11-19 22:26:16 +01:00