Commit graph

14711 commits

Author SHA1 Message Date
Robin Gareus
4706201425
NO-OP: Use API to set/test state-of-the-state 2019-03-18 15:36:58 +01:00
Paul Davis
bd9d848058 remove debug output 2019-03-17 22:22:09 -07:00
Robin Gareus
09fd380948
Avoid calling rt-methods from non-rt context
Since upcoming state-machine transitions are done in rt-context
via ARDOUR::Session::process_event () they should all in rt-context.

set_session() is called from the UI thread (and the process-lock wasn't
even taken)
2019-03-18 06:15:12 +01:00
Robin Gareus
e545e66911
Temporary change to make auto-return work with broken transport-logic
Revert this once transport state machine waits for de-click!

This causes audible-clicks on stop, but prevents audible artifacts
on LocateRoll with the current transport-control-logic.
2019-03-17 18:38:07 +01:00
Robin Gareus
66103be9f2
Speed up session deletion
No need to reconfigure routes due to removal of monitor or aux
send/return. The processors will be removed with the route.
2019-03-17 17:35:10 +01:00
Robin Gareus
3fa3437c38
Remove unneeded calls to configure_processors during session-load
Those are superseded by b890cf73ad, which is done after
all IOChanges have been processed.
2019-03-17 17:32:06 +01:00
Robin Gareus
b890cf73ad
Prepare to configure procs only once - fix missing panners
During session load, all earlier configure_processors() calls
were useless and not taking I/O into account! The Delivery ::pan_out()
needs _output I/O ports in order to correctly report the correct
port-count!

This worked in earlier versions because Config->map_parameters()
triggered [two] processor re-configs via ::listen_position_changed().
That behavior was changed in 1af123465c
2019-03-17 17:19:02 +01:00
Robin Gareus
b14fdbb516
NO-OP: prefer to use API to check session-state 2019-03-17 17:04:45 +01:00
Robin Gareus
2f09f72b3d
Amend 883ee9c2, setup required invisible processor
This fixes a potential silent master-bus when re-loading a session
("mains_out" may be skipped).
2019-03-15 15:54:07 +01:00
Robin Gareus
41e0255b97
Unused skeleton of the transport state-machine
Simple test/example code. Eventually this is to replace
Session::process_event() and Session::realtime_*() methods
are to become transition actions.
2019-03-14 01:11:10 +01:00
Robin Gareus
871bd6e0f3
NO-OP: re-order code, collect realtime transport actions 2019-03-13 16:26:17 +01:00
Ben Loftis
1ab383d43e Change region-equivalence enum to accommodate new mode. 2019-03-12 12:21:25 -05:00
Robin Gareus
56d8b6cae1
Change default RE to use Layer+Time 2019-03-12 15:17:41 +01:00
Robin Gareus
d7314e0048
Add a time+layer equivalence check
This is more useful than exact_equivalent() since _start offset
may not match in some cases (compounds, import, record with different
capture latencies).

However shared group editing (range, copy/paste) does result in
consistent layers and matching position+length.
2019-03-12 15:17:12 +01:00
Robin Gareus
bdcfab73f8
Use VST's print_parameter() when applicable. 2019-03-11 02:56:08 +01:00
Robin Gareus
484e0d0fb2
Remove generic parameter-printer
This has been superseded by value_as_string() along with meta-data
from parameter-descriptor, which is supported by all standards, except VST.
2019-03-11 02:10:50 +01:00
Robin Gareus
4964852f0b
Remove cruft, unused variable 2019-03-11 01:49:43 +01:00
Robin Gareus
4d695eaf51
Work-around crash when printing bindings
(ardour -b or Keyboard-Shortcuts > Print Bindings)
see also https://github.com/Ardour/ardour/pull/447
2019-03-09 21:59:16 +01:00
Paul Davis
65fc37afb7 do not save MIDI port info unnecessarily 2019-03-08 17:51:00 -07:00
Paul Davis
d14d9d9532 on engine (re)start, just mark MIDI port info dirty 2019-03-08 17:50:32 -07:00
Paul Davis
c51c8b3308 add runtime warning message 2019-03-08 17:08:29 -07:00
Paul Davis
dd8b051636 drop silly canonical name stuff from MIDI port info, and just store backend name (libs version 2019-03-08 12:10:22 -07:00
Paul Davis
ac50d66da9 rework name/canonical-name stuff for MIDI port info 2019-03-07 22:05:40 -07:00
Robin Gareus
15cd1163fc
Pass stderr mode properly to vfork wrapper 2019-03-07 23:51:04 +01:00
Robin Gareus
df8097e31e
Fix mp3 export
For reasons yet to be investigated, closing stderr when using a
pipe into ffmpeg results in ffmpeg's stderr being written
verbatim in the output file.
2019-03-07 23:51:01 +01:00
Paul Davis
99462a50e6 save/restore MIDI port pretty names, but prefer backend pretty name if available 2019-03-07 13:30:54 -07:00
Paul Davis
f7802325dc redesign naming and reload of MIDI port information (library edition) 2019-03-07 12:01:27 -07:00
Paul Davis
8b212bfa12 a more nuanced version of the "do-not-automatically-disconnect-selection-follows-input 2019-03-07 12:01:27 -07:00
Robin Gareus
b774ef1e20
Remove unused fluidsynth setting (since fluidsynth 2.0) 2019-03-06 23:50:07 +01:00
Robin Gareus
ce961d73f3
Use unique midi-port names for Ardour's Dummy backend 2019-03-06 23:48:07 +01:00
Robin Gareus
8ccc45d44d
Ardour/ALSA allow multiple MIDI devices with the same name 2019-03-06 23:41:15 +01:00
Robin Gareus
51674b0307
Add missing newline on error message 2019-03-06 17:09:29 +01:00
Robin Gareus
a24252e0d0
Fix typo 2019-03-06 17:09:12 +01:00
Jan Lentfer
dfda5eab82 LCXL:Disable global mute/solo/recarm in device mode 2019-03-06 09:28:25 +01:00
Robin Gareus
1af123465c
Tweak session load
Listen positions are already correctly set when the route state
is restored. The Route directly uses the Config.

This skips duplicate calls to re-configure all processors on all Routes
during RCConfiguration::map_parameters() on session-load, twice
(pfl-position, listen-position)
2019-03-06 01:04:29 +01:00
Robin Gareus
883ee9c2a0
Allow to call set_state() on existing routes
Delaylines are not saved in the XML and internal-return is an
invisible processor not explicitly re-added when the state is restored.

They are [re]inserted during Route::setup_invisible_processors().
So this method need to be called after restoring processor state
(indirectly via configure_processors_unlocked as needed).

PS. During route creation this call happens explicitly and on session load
hookup_io() -> Route::output_change_handler() implicitly sets this up.
2019-03-06 00:57:49 +01:00
Robin Gareus
6a7750a55d
Tweak, optimize route setup
Speed up route creation: add_processor() takes a process-lock
and calls configure_processors() but this is done explicitly at the
end of init() already.
2019-03-06 00:03:46 +01:00
Robin Gareus
8b5437301b
Close stderr of child processes on MacOS
This fixes a bug on some modern mac systems. Related to
setup_logging() changing stderr to use ASL and write to com.apple.console.

When a forked application writes to stderr while ASL is used,
the child is terminated for some reason.
2019-03-05 22:52:53 +01:00
Robin Gareus
e1ffe7857f
Use enum for exec stderr parameter (1/2) 2019-03-05 22:49:15 +01:00
Robin Gareus
fdf74cf850
Enable de-click in disk-reader
This breaks auto-return and other post-transport locates until
such transport-states wait for de-click before seek().
2019-03-05 22:49:08 +01:00
Paul Davis
f1dfc6d2a2 do not disconnect MidiPortSelection-flagged ports from everything when (MIDI track) selection changes
If the user manually connects such a port to something, then it is
up the user to disconnect it too
2019-03-04 18:23:06 -07:00
Robin Gareus
2cf57e9257
Fix recursive WriteLock crash due to signal emission
Route::processors_changed() signal connects to a same thread session-slot
Session::route_processors_changed() which can end up iterating over
Routes and Processors to re-calculate latency.
This takes a ReadLock after WriteLock, which eventually leads a duplicate
unlock and segfault.
2019-03-05 00:25:53 +01:00
Robin Gareus
bb6408d553
Make it compile again
ISO C++ forbids applying 'sizeof' to an expression of function type
2019-03-04 21:42:21 +01:00
John Emmas
d3657a8944 Add/remove source(s) in our MSVC project (audiographer) 2019-03-04 12:16:47 +00:00
Paul Davis
6dad858620 remove double assignments and one debug trace output; tweak second debug trace output 2019-03-03 13:19:01 -07:00
Paul Davis
7c820af42f debug trace output tweaks 2019-03-03 13:17:42 -07:00
Paul Davis
cd3c72bffe remove debug output 2019-03-03 13:17:30 -07:00
Paul Davis
033699a4cd remove conditional surrounding wait-for-master-to-catch-us logic 2019-03-03 13:16:30 -07:00
Paul Davis
64b6ea4341 remove debug output 2019-03-03 13:15:12 -07:00
Paul Davis
1568cd4411 do not initialize LTC timecode rate from session FPS 2019-03-03 11:39:56 -07:00