luz paz
3d395585c1
Fix various typos
...
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sord,sur,te,trough,ue`
Follow-up to 364f2f078
2022-04-08 19:51:02 +02:00
Paul Davis
f8dc6d93ec
constification: clean up final warning
...
This explains why we use const_cast<>. We also fix a logic error that
crept in here, in which a source might have its state saved twice
2022-04-07 15:13:30 -06:00
Paul Davis
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
Paul Davis
a4459ebf9c
avoid double-locates when locate-while-rolling
...
We know when we call non_realtime_stop() if we will be subsequently
locating. If so, do not do an additional non_realtime_locate() from
within the stop.
2022-03-17 17:43:43 -06:00
Paul Davis
1cc8a3f92c
extend Session API to provide ::transport_locating()
2022-03-17 12:20:34 -06:00
Robin Gareus
3ae73eb242
Extend Session::Exported signal
...
Include timespan start position. This will allow to re-import
the file at the export-position.
2022-03-15 22:52:58 +01:00
Paul Davis
22b50c1716
ensure that Session handles tempo map changes synchronously in the main RT process thread
2022-03-14 14:03:07 -06:00
Paul Davis
00d8b08300
triggerbox: track empty slot status and ignore stop-at-session-end when appropriate
2022-03-14 14:03:07 -06:00
Robin Gareus
020051772e
Extend Session::Exported signal
...
Indicate if exported file should-be re-imported.
2022-03-11 04:55:24 +01:00
Paul Davis
f77e9aa6c8
triggerbox: architectural changes to facilitate fast-forward
2022-02-08 20:57:32 -07:00
Robin Gareus
2328df23e5
Collect and postpone send delayline updates
...
In order to detect if route delaylines need to be updated,
aux-send delaylines need to be updated first. This was previously
done directly in the latency-callback, which may be concurrent
with processing.
Now only the information (pending_delay) is set, and the actual
change happens later at the end of process().
2022-02-07 04:31:42 +01:00
Robin Gareus
6900facef2
Fix potential deadlock
...
block_processing() may hold the process-lock, waiting
for the latency-lock. at the same time audio-engine
may hold the latter, trying to acquire the former.
2022-02-02 14:16:50 +01:00
Ben Loftis
63e134097c
Session::trigger_by_id finds a trigger from its pbd::id
2022-01-27 13:15:27 -06:00
Paul Davis
15f0e4dbbf
triggerbox: fix cue playback and recording
...
Somewhat alarmed that gcc (at least) allows if (cue_recording ...) to be
used just like if (_cue_recording) even though the former is a class method
and the latter is a class member.
2022-01-27 11:36:04 -07:00
Robin Gareus
729ff35faf
Mark session as modified when stripable order chanes
...
Previously this was handled by the Editor/Mixer Treeviews,
centralizing it in Session makes more sense.
2022-01-27 01:28:49 +01:00
luz paz
364f2f0788
Fix typos in gtk2_ardour/ directory
...
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
Paul Davis
d830800ed9
triggerbox: add flush-at-transport-stop from recorded cues to locations
2022-01-21 10:55:54 -07:00
Robin Gareus
670e1f9025
NO-OP: clarify variable name (1/2)
2022-01-15 00:06:26 +01:00
Robin Gareus
76facc0b13
Unconditionally create Triggerbox for each Track
...
This addresses and issue when loading old sessions or creating
tracks from [old] templates.
2022-01-14 22:46:50 +01:00
Robin Gareus
30539716ca
Fix various Wcast-qual
...
g_atomic_int_get() requires a non-const pointer, however
many APIs are declared virtual const, so const_cast<> is
preferred over an API change.
2022-01-10 00:06:20 +01:00
Paul Davis
a187b5e1fb
triggerbox: reimplement timeline cues without session events
2022-01-06 00:23:27 -07:00
Paul Davis
fd2f2f46cc
triggerbox: implement cue-triggering session event handling (sync with location markers)
...
Still requires handling tempo changes
2022-01-05 13:27:47 -07:00
Paul Davis
93b30976e5
cue events: some basic handling framework for syncing cue markers with session events that implement them
...
This doesn't actually do anything yet
2022-01-05 13:27:47 -07:00
Robin Gareus
3c2878974c
Always create a triggerbox with new tracks
...
This fixes an issue when creating tracks from the import dialog,
or via Drag/Drop, or using a template.
All tracks should always have trigger-boxes.
2022-01-03 23:41:58 +01:00
Paul Davis
ff89d998b2
triggerbox: steps toward sane trigger stopping API and design
2021-12-22 17:27:26 -07:00
Paul Davis
12847b0125
remove Session::bbt_time() and use TempoMap::use()->bbt_at() explicitly everywhere
2021-12-14 21:59:33 -07:00
Ben Loftis
e7569eabe7
Trigger Cues: implement master Stop button (libardour part)
2021-12-13 07:26:47 -06:00
Ben Loftis
11543b1c9b
Deinterlace MIDI: split a midi region into per-channel regions (libardour part)
...
code is similar-but-different-from Importing with split-midi-channels enabled
2021-11-19 10:28:37 -06:00
Paul Davis
91a28b78c4
modify and extend both Session and TriggerBox API to allow better transport control
...
This allows a stop transport request to first stop all active triggers and then stop the transport
2021-11-10 15:55:58 -07:00
Paul Davis
f3481df9d4
Add new static Session signal will be emitted after port reconnection on session load.
2021-11-03 15:03:40 -06:00
Robin Gareus
84b75f6627
Retain MIDI monitor connection -- #8816
...
A physical input port must remain connected to ardour's
physical_midi_input_monitor_enable port, otherwise reading
its input can cause crashes.
Previously a MIDI input port was disconnected from all other
targets when "MIDI input follows selection" was enabled.
2021-10-31 16:37:37 +01:00
Paul Davis
55209b5df7
triggerbox: respond to changes in default trigger input port
2021-10-09 16:58:58 -06:00
Paul Davis
6326222a48
triggerbox: change APIs so that we can add a triggerbox to either type of track
2021-10-08 13:45:27 -06:00
Robin Gareus
6199d08f71
Add API to report I/O Latency
2021-09-08 22:39:32 +02:00
Robin Gareus
f301e692a7
Expose compensated port-latency, fix ambig. latency detection
...
Previously Ardour only announced processor latency.
Routes that had additional latency to compensate for those
have not published this delay.
This is of no concern with internal backends, however with JACK,
Ardour reported incorrect *individual* port-latencies of
routes that perform PDC.
Since public port latency now includes delay-compensation,
some extra work is required to unset it before recalculating
latency of paths that include external ports.
2021-09-08 22:39:32 +02:00
Paul Davis
e52eead1b6
Add Session::start_transport_from_processor() (for process() context use only)
2021-08-13 12:51:36 -06:00
Paul Davis
e9401a945f
add new argument @param with_triggers to Session::new_midi_track()
...
Lua binding for Session::new_midi_track() temporarily commented out due to some templating/types issue
2021-08-13 12:51:36 -06:00
Paul Davis
04b4fc531d
remove default args to Session::new_midi_track() (libs edition)
2021-08-13 12:51:36 -06:00
Paul Davis
6608700e82
no more need to update locations after a tempo map change
2021-08-13 12:51:33 -06:00
Paul Davis
79763893b3
remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr)
2021-08-13 12:51:30 -06:00
Paul Davis
60d1c5f722
remove tempo map from Session
2021-08-13 12:51:30 -06:00
Paul Davis
c9055547f3
set thread-local variable infrastructure for process thread & process graph
2021-08-13 12:51:29 -06:00
Paul Davis
f67029bd02
random commit to facilitate trivial move of work from laptop back to main system
2021-08-13 12:51:29 -06:00
Paul Davis
5f4afa6a0e
Session: changes to support timeline types more easily/correctly
2021-08-13 12:51:29 -06:00
Paul Davis
eae9d276fe
libardour: conversion to use timeline types (mega-commit)
2021-08-13 12:51:29 -06:00
Paul Davis
f4490f54c5
change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
...
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06:00
Paul Davis
cd7c222942
Do not queue TransportStateChanged events (and thus signals) when locating from the end of a loop.
...
There is no event processing after the locate, and so the event that is (was)
queued at the loop start will not be processed, and each time we reach the
loop end, we will try (and fail) to queue an identical event (fail because
duplicate events are not allowed). We don't need this event (or signal) at
all, because locates (and then ::start_transport() while looping do not
represent a state change that any UI needs to know about.
2021-07-26 17:27:43 -06:00
Paul Davis
e01f898f3b
libardour: adjust names for default speed APIs and make ::set_default_play_speed() private
2021-07-18 19:48:13 -06:00
Paul Davis
3bdf009e11
libardour: provide infrastructure for requesting default play speed
2021-07-18 19:40:21 -06:00
Ben Loftis
f11350cd31
Default_Play_Speed: nuke shuttle Wheel mode (libardour part)
2021-07-03 19:06:02 +02:00