Commit Graph

180 Commits

Author SHA1 Message Date
Paul Davis 1e5a5b6b4f do not have MIDI input follow selection when recording 2024-06-15 14:01:36 -06:00
Paul Davis 0847dc8a37 when disconnecting a MIDI port for follows-selection, get ALL connections
without the 3rd argument, we only get information about ports that we own.
2024-06-14 22:17:41 -06:00
Robin Gareus dad725688d
Fix various MMC commands, set request-source 2023-06-04 01:15:02 +02:00
Robin Gareus 27155732ff
MIDI input input follows selection groups
This also mitigates an issue that selecting a track in
a group may select other tracks. Previously the last
selected track's input was connected to MIDI ports, which
is usually not the track that the user clicked on.
2023-04-21 22:50:49 +02:00
Robin Gareus 295dbd8e1e
Make RCU reader return a const pointer (omnibus commit) 2023-04-08 00:15:37 +02:00
Paul Davis a486fba3e9 std::atomic - 2nd batch of changes to convert from glib to std::atomic 2023-03-24 14:19:15 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 39ed528e25 std-ize: convert all boost shared/weak ptr includes to <memory>
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Robin Gareus e83898cf88
Use correct flag for MMC 2023-02-19 18:09:01 +01:00
Paul Davis c8e3d95109 add new Session global MIDI input port for trigger control 2022-11-19 10:22:16 -07:00
Paul Davis cc2e6b3cf8 libardour: change API of Session::request_locate() to include "force" argument
No behavior should be changed by this modification; the argument has a default value of false, which
matches previous semantics, and every instance where the argument is specified, it is given as false.
2022-05-27 18:49:11 -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
Robin Gareus 5957e14259
Remove unused #include<> (2/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Paul Davis 4b87c3a6b1 complete removal of Session::_transport_speed, _default_transport_speed and takeover of transport state mgmt by TransportFSM
The TransportFSM is now responsible for deciding what to do at all transport state transitions. The Session (via the TransportAPI) merely
provides mechanism (locate, start, stop, set_speed). Default and most recent speed requests are managed by the TransportFSM too
2021-05-03 17:40:41 -06:00
Paul Davis 48e5607f7c use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
Paul Davis e5790c6b70 incoming MIDI: use Session::request_stop() rather than Session::request_transport_speed() 2021-04-19 16:14:08 -06:00
Robin Gareus 01502c6805
Allow to set pretty name for all port 2021-01-18 03:18:20 +01:00
Robin Gareus f9cdf533ba
Event API consistency; reorder arguments (time, type, payload) 2020-09-20 19:18:09 +02:00
Robin Gareus 9d390f38bf
Cache MIDI generator port latency
This reduces excessive, expensive calls to get_connected_latency_range()
2020-07-12 01:50:01 +02:00
Robin Gareus 5ce12a38e6
Retain connections of ctrl-data ports
Previously "Follow selection" disconnected a MIDI port from
control surfaces, even when it was marked as "MidiPortControl".
2020-06-11 23:24:55 +02:00
Robin Gareus 8f82ccd3aa
Add LatencyRange comparator, and explicit assignment operator 2020-06-05 20:44:57 +02:00
Paul Davis 3c00048b0c Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
Paul Davis 007136cc23 remove MIDI Control input and output ports from session-level objects 2019-12-31 12:06:14 -07:00
Robin Gareus 4a5c9c759b
Only retain control-port connections
When MIDI input follows selection, ports that provide music-data
should be disconnected, even if they *also* provide control-data
2019-11-11 23:37:11 +01:00
Paul Davis 62c4e88a9d avoid use of Port::port_offset() everywhere except Port::flush_buffers() and Port::get_buffer()
Split cycles are run as if they are an entire self-contained cycle, starting at zero and running for "nframes".

We adjust the timing and position of data only when retrieving and writing it to Port buffers.
2019-11-04 12:57:19 -07:00
Robin Gareus e371e8a51a
Fix timecode generation after split-cycles 2019-11-03 15:19:37 +01:00
Robin Gareus ee67d2d749
Auto-connect input should not disconnect other ports
This fixes an issue with existing MIDI routing between MIDI tracks
and/or busses. Automatic MIDI connections should only dis/re-connect
ports that are explicitly configured in Preferences > MIDI Ports
and leave all other connections alone.
2019-11-03 00:28:53 +01:00
Robin Gareus eade673771
Expose virtual-keyboard port as async-port 2019-10-18 22:56:46 +02:00
Robin Gareus f961fd4687
Add Virtual-Keyboard MIDI port 2019-10-18 03:42:41 +02:00
Paul Davis 468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06:00
Robin Gareus a22f918d9d
Update libardour GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
Robin Gareus 2f91bdfa53
NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
Robin Gareus 46f0b75e12
Undo more incorrect sample/frame replacements 2019-04-08 04:10:04 +02:00
Paul Davis ac50d66da9 rework name/canonical-name stuff for MIDI port info 2019-03-07 22:05:40 -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
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
Paul Davis 5b0d98abcd fix decision about sending MTC to be based not just on whether the transport master is locked, but whether it is external 2019-03-03 10:27:38 -07:00
Paul Davis e6915e01de new transport slave/master implementation, libs/ edition 2018-09-18 19:06:04 -04:00
Robin Gareus f974cd5401 Update Timecode Generator/Slave alignment 2017-09-29 05:03:48 +02:00
Paul Davis 7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis 0c035778e1 libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls 2017-05-05 18:56:25 +01:00
Robin Gareus 61c7af141d Clarify "frames" (video, timecode) vs "samples" (audio) 2016-12-08 12:45:44 +01:00
Paul Davis fb200cfbb9 remove debug output 2016-10-21 16:31:53 -04:00
Paul Davis 235c1f9adb infrastructure for save/restore of MIDI port user-provided information 2016-10-20 16:34:52 -04:00
Paul Davis 12c558f62e tweak logic for MIDI input follows selection 2016-10-20 16:34:52 -04:00
Paul Davis 8ac97d55c9 slight improvements in logic for midi-input-follows-selection 2016-10-19 23:17:39 -04:00
Paul Davis f96b698234 infrastructure for MIDI-input-follows-selection 2016-10-19 17:49:35 -04:00
Paul Davis 0a8ab08e5f basics of following MIDI track selection and rewiring input 2016-10-19 17:49:35 -04:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00