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
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