Commit graph

136 commits

Author SHA1 Message Date
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Paul Davis
379d75c66d make Scene ports visible in MIDI connection matrix 2024-09-10 08:13:55 -06:00
Robin Gareus
170bc45de9
Sort MIDI Ports by human readable name in connection matrix
This is mainly for the benefit of CoreMIDI where MIDI
ports are identified by kMIDIPropertyUniqueID and ALSA
where Ardour uses a unique hash for persistent names.
2024-07-31 17:38:40 +02:00
Robin Gareus
0bf42af59d Collect ctrl surface ports into single bundle
This prevents a crash on Windows (and optimized mac builds) in
~PortGroup() when a ctrl surface is disabled. Despite the bundle being a
shared_ptr, unloading the ctrl surface module (.dll, dylib), destroys
the shared_ptr<> (or rather the memory are where the shared_ptr is
stored). This later causes a segfault in ~shared_ptr<Bundle>
when the PortGroup is released.

It is also much nicer to have all the ctrl surface grouped into a common
Bundle, rather than having a lot of bundles each with a single unnamed
port.
2024-07-18 18:39:34 +02:00
Paul Davis
bbda6b8c02 NO-OP: whitespace 2024-05-29 22:38:38 -06:00
Paul Davis
cb5a9f11dc auto-fy another PortGroup::gather loop + no main outs for livetrax, part 2 2024-05-29 22:38:38 -06:00
Paul Davis
44ee16a5ac L: do not add main outs proc to a RouteIOs list for livetrax 2024-05-29 22:38:38 -06:00
Paul Davis
c98ec4456d auto-fy another PortGroup::gather loop 2024-05-29 22:38:38 -06:00
Paul Davis
a67963185f auto-fy loop in PortGroup::gathe 2024-05-29 22:38:38 -06:00
Paul Davis
66707bc133 NO-OP: no-wrap line 2024-05-29 22:38:38 -06:00
Paul Davis
8f7f204ae4 port group display should not crash if there's no auditioner 2024-04-25 13:07:00 -06:00
Krzysztof Gajdemski
82d03607b8
PortGroup: fix missing "_" in "Tracks"
This small typo prevented (a rather important) noun "Tracks" from being
translated.
2023-09-23 14:10:54 +02:00
Robin Gareus
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit) 2023-04-08 00:15:37 +02: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
Marijn Kruisselbrink
7a4ddf5cce
Group system ports by common prefix.
Extra "other" ("External") ports were already being grouped by their
common prefix into bundles to better display ports coming from different
jack clients. This commit factors out that logic into a separate method
to also apply this logic to extra "system" ("Hardware") ports. This way
hardware ports from different devices/clients (for example when using
pipewire as jack backend) are grouped by device rather than all being
listed as one bundle.
2023-01-01 18:19:14 +01:00
Robin Gareus
b634cbba4c
Shrink connection matrix tabs
Program-name is not required to indicate "Tracks", "Busses", etc
Those are always by provided by PROGRAM_NAME.

"Other" really indicates external JACK (or Pipewire) applications.
Here "External" is a better label.

"Misc" can potentially be interpreted ambiguously, hence keeping
PROGRAM_NAME is useful.
2022-10-21 01:37:35 +02:00
Robin Gareus
23da78c013
Separate I/O Pre and Post plugins to dedicated matrix tabs 2022-10-21 01:22:45 +02:00
Robin Gareus
57af42ef84
Do not show I/O plugin port in the matrix that cannot be connected 2022-10-16 04:27:26 +02:00
Robin Gareus
2a2e5a49e7
List I/O Plugins separately in connection matrix 2022-10-16 04:03:55 +02:00
Todd Naugle
d5113e6e91
Don't crash if the click is missing 2022-08-05 00:41:37 +02:00
Robin Gareus
faa1e984ab
Sort ports by name in the connnection-matrix
This should fix a long-standing issue with interleaved display
of clients since jack_get_ports() does not return a well defined order.

(Internal backends based on Ardour::PortEngine keep ports sorted)
2022-07-26 01:58:11 +02:00
Robin Gareus
68e3d3d672
Fix endless loop if port-handle is n/a #8760 2021-06-24 17:20:44 +02:00
Robin Gareus
355528781d
Fix Bundle Editor: show connected ports
PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`

That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`

However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
2021-02-26 19:14:57 +01:00
Robin Gareus
7d3d64512c
Hide hidden ports in port-matrix 2021-02-01 23:49:39 +01:00
Robin Gareus
559ffcff63
VKeybd: use a non-translatable port-name (2/2) 2021-01-08 16:33:29 +01:00
Robin Gareus
f1dafe7632
Prepare changing LTC Generator <IO> to <Port> 2020-05-07 20:42:58 +02:00
Paul Davis
ca022f6bb7 show transport master ports in their own "Sync" bundle in the global port matrices 2020-04-09 14:01:47 -06:00
Robin Gareus
f0d2327af0
Use AsyncMIDIPort API 2019-10-18 22:56:46 +02:00
Robin Gareus
ebb89ba805
Super basic Virtual-Keyboard UI 2019-10-18 03:50:52 +02:00
Paul Davis
468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06:00
Robin Gareus
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Johannes Mueller
9a01ef35e7 Put the sidechain ports into a dedicated tab in PortMatrix 2018-11-01 18:52:51 +01:00
Paul Davis
084bb67417 use IsPhysical port flag to decide what to show in the "system" tab of a patchbay/matrix 2018-10-17 14:11:37 -04:00
Paul Davis
db385c2e3c new transport slave/master implementation, gui edition 2018-09-18 19:06:04 -04:00
Thomas Brand
63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
Paul Davis
dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
Paul Davis
7df9917a11 minor code-tidying tweak - continue if port handle is null, rather than nest inside conditional 2016-10-21 16:31:16 -04:00
Paul Davis
d2e59c308e various tweaks to port matrix display logic to try to avoid a few wierd things 2016-09-27 14:59:30 -05:00
Julien "_FrnchFrgg_" RIVAUD
f41e0cd4a2 Make monitor detection reuse the port name translation
So that they never get out of sync, and translators don't get confused.

Also replace some N_() where X_() was really intended.
2016-07-29 22:10:49 +02:00
Julien "_FrnchFrgg_" RIVAUD
0b5f2c5d58 Don't add Bundles to PortMatrix if they only have mistyped ports
PortMatrix is able to filter out ports that have an unwanted datatype, but
if a Bundle is added that has no port at all with a wanted datatype then
it is not weeded out correctly (and even if it were, there's no chance
that it will legitimately appear in the UI). Don't add that kind of
Bundle in the first place.
2016-07-19 02:10:40 +02:00
Julien "_FrnchFrgg_" RIVAUD
f5ed0c6d07 Remove bus ignore from MIDI tracks
Now that busses can contain MIDI, this special casing doesn't make sense
anymore.
2016-07-19 02:10:40 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Paul Davis
da7d7f9502 many changes associated with rationalizing selection flow 2016-07-06 13:39:10 -04:00
Paul Davis
260058a4a9 move from PresentationInfo::global_order() to PresentationInfo::order, and fix up part of reordering behaviour
Dragging tracks/busses in the editor *below* VCAs still does not work
2016-06-03 15:15:39 -04:00
Paul Davis
e0ff70cf86 first vaguely working version using PresentationInfo
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
Robin Gareus
11b2bcbde3 for mixed-i/o show HW ports of both types in the matrix
e.g. sidechain inputs with audio and midi.
2016-04-28 02:52:16 +02:00
Paul Davis
d237165e21 do not show control surface bundles in non-MIDI port matrix.
This will stop being the right thing to do if anyone ever creates a control protocol that
uses audio ports.
2015-12-03 22:01:07 -05:00
Paul Davis
4f427c5f97 further improvements to port grouping for the port matrix
Don't show LTC etc. ports in the MIDI matrix; Don't show Scene ports for Ardour or Mixbus, since we don't use them; code renaming
2015-12-03 12:50:32 -05:00
Paul Davis
34b1c0db94 fix mis-assignment of various Ports when constructing the PortGroup list for the (e.g.) PortMatrix 2015-12-03 12:50:32 -05:00