Commit graph

18307 commits

Author SHA1 Message Date
Paul Davis
0f0c5c7039 remove Kiwi constraint-based packing code from canvas library and users (library version) 2021-11-04 11:25:30 -06:00
Paul Davis
a9adc3c5c6 triggerbox: flesh out Request mechanism
Still no actually active requests
2021-11-04 11:16:22 -06:00
Paul Davis
b0176c21fb triggerbox: skeleton for requests sent to a TriggerBox (to change state) 2021-11-04 09:50:34 -06:00
Paul Davis
241948635b new session event type for triggering scene changes 2021-11-03 22:58:17 -06:00
Paul Davis
79baafde15 triggerbox: allow access to default number of triggers per box (and change type) 2021-11-03 18:44:18 -06:00
Paul Davis
62c80e1430 Add the definition of Session::AfterConnect 2021-11-03 15:18:59 -06:00
Paul Davis
62f9edfc07 Remove TransportMasterManager::reconnect_ports().
PortManager::reconnect_ports() covers all ports, and this method was only
used directly after a call to PortManager::reconnect_ports().
2021-11-03 15:15:54 -06:00
Paul Davis
4ea2fdd5bd Fix internal (aux) send to call ::use_target() when Session::AfterConnect is emitted 2021-11-03 15:07:46 -06:00
Paul Davis
016206e18a Remove all IO code that handled deferred connections
When loading a session, we now just set up port state, which will
populate the Port::_connections member, and then once all ports have
been created, use PortManager::reconnect_ports() to get everything connected.
2021-11-03 15:06:16 -06: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
79330f909e
Work around connection loss when re-starting JACK backend
If connecting ports using the port-engine fails,
ardour forgets the connection.

Internal backends only produced an error if a port was already
connected, when using ::connect (handle, other), but
ignore already existing connection when using port-names.

Various ports are connected twice when the engine connects
at session load. This worked fine for as long as the engine
was never stopped (saving the session asks the port-engine),
but failed when the engine went away and internal representation
is used.
2021-11-01 23:11:41 +01:00
Robin Gareus
6b348d8183
Reconnecting unconnected ports always succeeds
PortManager::reconnect_ports emit a signal
PortConnectedOrDisconnected when Port::reconnect fails. This is
not needed in case of unconnected ports.
2021-11-01 22:57:18 +01:00
Paul Davis
42d0873a59 triggerbox: respond to active (triggered) scene 2021-11-01 12:11:57 -06:00
Paul Davis
07a98734f3 triggerbox: tentatively add static calls to check for scene triggers inside Session process() 2021-11-01 12:11:57 -06:00
Paul Davis
b65f18a56e triggerbox: basics of scene triggering 2021-11-01 12:11:57 -06:00
Robin Gareus
437840dced
NO-OP: whitespace, clang-format 2021-10-31 18:17:01 +01:00
Robin Gareus
07d7e0bf54
Fix JACK-MIDI monitoring when hotplugging devices
During initial setup, PortManager::reestablish_ports(),
the jack client is not yet active and port_connect failed:
"Cannot connect ports owned by inactive clients".

Later hotplugged devices were likewise not connected because
"JACK: Cannot callback the server in notification thread!"

see also 2007bf2d5f
2021-10-31 18:10:28 +01: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
Robin Gareus
89fc526574
Add API to check for special ports by name 2021-10-31 16:33:03 +01:00
Bruno Vernay
e3836e1162 Typo in code Paramater 2021-10-30 23:02:04 +02:00
Bruno Vernay
2000d306c6
Typo in comments ParamaterDescriptor
ParamaterDescriptor -> ParameterDescriptor
2021-10-30 18:38:14 +02:00
Paul Davis
1e8b7cc563 triggerbox: mo' better MIDI triggers 2021-10-29 16:22:55 -06:00
Paul Davis
0634dcfbc4 remove some unused code (left over from before RippleAll) 2021-10-29 16:22:30 -06:00
Paul Davis
66b812cc2f remove some unused local variables 2021-10-29 16:22:06 -06:00
Paul Davis
4376185a6b temporal: fix TempoPoint::superclock_at (Beats)
a negative beat position needs to be legal, so the assert was moved and modified. The only check
for a negative value is that the TempoPoint being used is at absolute zero.

This check might turn out to be wrong in the future, but for now we still require a tempo and
meter point at absolute zero
2021-10-29 12:55:14 -06:00
Paul Davis
2b9b08aa22 triggerbox: sort-of-mostly get MIDITriggers to work
Repeated loops can eventually go wrong, as can arbitrary stops
2021-10-27 22:54:40 -06:00
Paul Davis
031f39d9d1 triggerbox: remove unused member vars from MIDITrigger 2021-10-27 22:52:58 -06:00
Paul Davis
282707ee32 add ::shift() to RTMidiBuffer to allow shifting time origin of events 2021-10-27 22:51:25 -06:00
Paul Davis
e1c874b299 manually reverse 948500bbc7 (final code is not identical to previous state) 2021-10-27 08:36:52 -06:00
Paul Davis
66fe6e937a triggerbox: vaguely working MIDI triggers 2021-10-26 17:34:06 -06:00
Paul Davis
32408db777 fix bug in RTMidiBuffer::bytes() method
bytes[0] does not contain data, only the offset for a blob, if relevant
2021-10-26 17:33:46 -06:00
Paul Davis
948500bbc7 further API changes to MIDIRegion::render() to allow for use by triggers 2021-10-26 17:32:36 -06:00
Paul Davis
787e5a2ea8 midiregion: remove internal_offset local variable
Even in 6.9, the logic of this conditional would always generate an
internal_offset value of zero samples.
2021-10-25 13:55:03 -06:00
Paul Davis
54f5c65f02 generalize MidiRegion::render() to provide MidiRegion::render_range() 2021-10-25 13:30:26 -06:00
Paul Davis
f5fb65a3f8 remove unused local variabl 2021-10-25 13:17:18 -06:00
Paul Davis
f9b604b614 triggerbox: start to work on details of MidiTrigger::run() 2021-10-25 12:53:49 -06:00
Paul Davis
76d3238fa6 triggerbox: member variable rename to make things slightly clearer 2021-10-25 12:53:27 -06:00
Paul Davis
8fd25e15c0 triggerbox: cleanup parts of Trigger API and finish initial pass of MidiTrigger implementation 2021-10-24 09:27:14 -06:00
Paul Davis
2b754568a0 changes/extensions to RTMidiBuffer API to make it more suitable for slots/triggers 2021-10-24 09:26:35 -06:00
Paul Davis
7339aa7c0d triggerbox: new API to set from region (selection) 2021-10-24 09:25:11 -06:00
Paul Davis
600e0b21e8 fix a misleading comment 2021-10-21 11:16:55 -06:00
Paul Davis
ef20e8e5df triggerbox: remove unused midi_trigger_map 2021-10-20 16:58:00 -06:00
Paul Davis
d252beb807 triggerbox: add MIDI triggers when asked 2021-10-20 16:53:52 -06:00
Paul Davis
d4ef49b504 triggerbox: skeleton framework for MIDI triggers (non-functional) 2021-10-20 16:19:09 -06:00
Paul Davis
6695423fe7 triggerbox: replace implicit queue with single pointer (up_next) 2021-10-19 19:08:52 -06:00
Robin Gareus
7215b10007
Remove accidentally commited file 2021-10-20 01:27:04 +02:00
Paul Davis
9f55e7f5d3 triggerbox: add scalable MIDI velocity effect for gain control of triggers 2021-10-19 12:52:32 -06:00
Paul Davis
2d3371c049 triggerbox: fix ::set_state() to pick Processor state too 2021-10-19 12:07:52 -06:00
Paul Davis
211b3ea668 canvas text: generalize ::font_size_for_height() to handle different font families 2021-10-19 10:54:27 -06:00
Paul Davis
1d1cc04b32 triggerbox: add Trigger -> TriggerBox accessor 2021-10-17 17:57:43 -06:00