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
df28a71252
Consolidate API, prefer ->running()
2018-11-28 15:19:39 +01:00
Robin Gareus
0805b6b925
Consolidate two more engine-checks
2018-11-28 15:17:57 +01:00
Robin Gareus
245d48dbd0
NO-OP: Clarify function name
2018-11-28 15:16:25 +01:00
Robin Gareus
76f9764a44
Use central method to check for engine for processor operations
2018-11-28 00:02:57 +01:00
Robin Gareus
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
Robin Gareus
415721fa5b
Prepare central engine check and user notification
2018-11-27 23:57:53 +01:00
Robin Gareus
1d8dc009f7
Catch potential exceptions when adding tracks/busses
2018-11-27 13:19:34 +01:00
Robin Gareus
57d7b5de65
GUI limitation: Require engine to add/remove tracks/busses
2018-11-27 13:18:39 +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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
4bbfb6ce50
Fix a double-free, introduced in b06713bd8e
...
~OptionEditor() already frees all components on every page.
2018-11-26 00:32:29 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
3fd8dad9d6
Allow compilation with winpthreads -- closes #7691
2018-11-25 16:51:24 +01:00
Robin Gareus
bdc82f68e6
Bundle x42-limiter with binaries
2018-11-25 16:40:28 +01:00
Robin Gareus
01e0472481
Auditioner: check if removing synth succeeds
...
remove_processor() also calls drop_references, when successful.
2018-11-24 02:01:16 +01:00
Robin Gareus
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
Robin Gareus
771ddcc86f
NO-OP: whitespace and re-organization
2018-11-23 22:09:13 +01:00
Robin Gareus
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
Robin Gareus
8c4c97d1e2
Update Fluidsynth to v2.0.2
2018-11-23 16:05:19 +01:00
John Emmas
f28b03c305
Add/remove source(s) in our MSVC project (gtk2_ardour)
2018-11-23 07:28:17 +00:00
John Emmas
afee22d5fa
Add/remove source(s) in our MSVC project (audiographer)
2018-11-23 07:27:32 +00:00
John Emmas
b7317eb1b3
Add/remove source(s) in our MSVC project (libardour)
2018-11-23 07:25:54 +00:00
Robin Gareus
04fe6d6fb4
Amend prev. commit, actually remove (1.0 - x) as was documented
2018-11-22 21:05:03 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
abf1f286d4
Fix LV2UI_Request_Parameter Feature URI
2018-11-22 06:12:54 +01:00
Robin Gareus
14c390ed02
Update codec-quality display when ExportFormat changes
2018-11-21 23:21:52 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
3d366053e2
Set encoder quality for existing ExportFormatSpecs
2018-11-21 21:19:01 +01:00
Robin Gareus
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
Robin Gareus
79731a716d
Update GUI, use/remove meta-data methods that have been migrated to the backend
2018-11-21 00:05:13 +01:00
Robin Gareus
d6a92dc521
Include session-metadata in external/ffmpeg export
2018-11-21 00:03:36 +01:00
Robin Gareus
d169864b5b
Prepare session-metadata export to external command
2018-11-20 23:56:12 +01:00
Robin Gareus
0268489c78
Vorbis Quality Config GUI
2018-11-20 03:35:25 +01:00
Robin Gareus
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
Robin Gareus
cdc5b88c91
Handle port-export report of unplayable files
2018-11-20 00:44:40 +01:00
Robin Gareus
731a745c1c
Add some mp3 export presets
2018-11-20 00:21:51 +01:00
Robin Gareus
dfef8b7f62
FFMPEG/MP3 encoder quality select GUI
2018-11-20 00:21:15 +01:00
Robin Gareus
27e0e78e1d
Implement FFMPEG/MP3 export-format spec and profile
2018-11-20 00:21:01 +01:00
Robin Gareus
5fa05b403c
Prepare export-format codec-quality setting
2018-11-19 22:26:16 +01:00
Robin Gareus
d18b247a05
Fix Windows and Mac Builds
...
* missing include for locale_to_utf8 (amend 4c6ff5f7e7 )
* avoid void* arithemtic (amend 103ef2ba )
2018-11-19 12:54:07 +01:00
Robin Gareus
df72e1ba4f
Initial backend support for external export encoder
...
This adds an experimental pipe to ffmpeg to encode mp3. Currently
quality is hardcoded and various aspects remain to be implemented.
However, it is sufficient for initial testing.
2018-11-19 05:21:17 +01:00