Commit Graph

140 Commits

Author SHA1 Message Date
Robin Gareus c162aa7aca
Consistently use context-menu button action
This fixes an issue where brining up a menu can directly activate an
action in the menu. Notably on macOS.

Nathan reports that this may also address #9515

Note: mac touchpads are not affected since right-click there is
effectively a "press and hold".
2023-10-31 20:16:23 +01: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
Robin Gareus 2b0a1b7bb3
Prefer ArdourMessageDialog, fix window stacking on top of port-matrix 2021-09-08 22:39:33 +02:00
Robin Gareus 4716f34c28
UserBundle: Allow adding/removing ports
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()

UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().

While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.

This further prevents removing the last port, preventing empty bundles.
2021-02-26 15:49:07 +01:00
Robin Gareus b2c4e71a45
Subscribe to pretty-port name changes (GUI) 2021-01-18 03:18:20 +01:00
Robin Gareus 59d9c940d3
Fix null pointer dereference in bundle-manager #8331 2020-09-04 22:48:11 +02:00
Carl Hetherington 1f14a9d9a5 Scale the port matrix with the GUI/font-scaling setting. 2020-01-11 01:17:42 +01:00
Robin Gareus 2b55d6dce3
First batch of MessageDialog replacements 2019-12-14 23:44:01 +01: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
Robin Gareus dc131da53b
Hide "Add MIDI Port" in the GUI if there is already one 2019-07-11 22:58:27 +02:00
Thomas Brand 63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +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 0b5814e2a5 Stripable signals moved to PresentationInfo 2016-06-05 16:33:02 -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 c9fd0ea0ca Simplify port add/remove error messages.
The detailed information is no longer correct with flexible routing
since pin management.
2016-04-14 20:05:41 +02:00
Robin Gareus 56352723d8 Prevent deletion of last port using the PortMatrix. 2016-04-03 23:24:03 +02:00
Robin Gareus 696b89b71a rework 8b80fe0, use std::string, not char* 2015-10-15 11:24:15 +02:00
Robin Gareus 8b80fe04ad Avoid calls to Glib::ustring << operator at all cost.
Glib::operator<<(std::ostream&, Glib::ustring const&) involves
loadlocale which is not thread-safe on OSX.

This fixes various seemingly random crashes on OSX.
2015-10-14 22:46:15 +02:00
Robin Gareus 22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis 4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
nick_m 7cf04e2b9d Port matrix useability fix.
When a page has changed, leave the adjustment where it is on the axis whose
size remains the same.
On the changed axis, set the scroller to zero.
2015-04-05 03:35:27 +10:00
Robin Gareus 4100e1f7b7 Bundle API user update 2/2
cherry-pickable follow up to 0582221
2015-03-08 22:40:00 +01:00
Robin Gareus 6b3a8915f3 add abort() to non-reached code
This cleans up a lot of false-positives in static analysis
and also helps compilers to optimize code paths in general.
(tagging the fatal stingstream operator as ‘noreturn’ is
far less trivial)
2014-11-14 11:30:08 +01:00
Robin Gareus 8dc41bb700 fix potential crash at session close (when port-matrix is visible)
remove_aux_or_listen() -> PortMatrix::route_processors_changed()
-> setup_global_ports() -> PortGroupList::gather() -> crash
if some session ports were already removed.
2014-10-27 21:15:39 +01:00
Robin Gareus ffde2fb5f9 OS 10.10 compile fixes
* fix clang pickiness regarding boolean
 * ignore ‘verify’ macro
 * tested with Apple LLVM version 6.0 (clang-600.0.51) (based on LLVM 3.5svn)
2014-10-19 23:15:13 +02:00
Robin Gareus a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
Paul Davis 3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
nick_m 5b62e88fbf Unify editor / mixer ordering. 2013-10-21 00:19:43 +11:00
Paul Davis ee1b49f87e fix merge conflicts from master 2013-08-24 12:18:06 -04:00
Robin Gareus 3ca63cc38c fix gtk "child->parent == NULL" asserts 2013-08-03 13:45:27 +02:00
Robin Gareus 23eba1cc39 disallow invalid port-removal
do not allow port-removal if the port would be re-added immediately
after that again because the main-delivery actually needs it.

As a side effect this prevents this crash:

 * create a stereo-track, then remove one output
  -> unhandled exception "AudioEngine::PortRegistrationFailure&"

 The problem:
 - the port is removed from the RCU ports list,
   but Port::drop() (which calls jack_port_unregister) is only called
   from the Port's destructor at some later time.
   (because a reference to the port still exists elsewhere)
 - the jack-port is not yet removed.
 - meanwhile Delivery::configure_io comes along and notices that
   there are more audio-buffers than ports and tries to re-register the port.
 - but the port still exists in jack, so it fails and throws an exception
   ...which is not handled.
2013-08-03 00:51:07 +02:00
Paul Davis aaabaf5d3c Merge branch 'master' into windows 2013-08-02 12:51:24 -04:00
Robin Gareus 23f738c699 keep port-matrix in sync when deleting ports. and fix segfault on session close with io-matrix visible 2013-08-02 17:41:48 +02:00
Paul Davis c08b336292 Fix ambiguous type CheckMenuItem that is also defined via windows.h 2013-07-11 15:32:31 -04:00
Robin Gareus 4368759d41 amend to 212d2ac5d and 8becd4413 - fix port connection matrix crash on close 2013-07-10 15:27:13 +02:00
Paul Davis a541e4e811 escape markup text that may contain non-legal characters (for GMarkup). this may need to be done more widely
git-svn-id: svn://localhost/ardour2/branches/3.0@13318 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-23 14:45:09 +00:00
Paul Davis 11415b49be first pass at the big rethink of managing sort order keys for editor and mixer. this appears to work, but remote control IDs are not yet correct (frequently off by one because of the presence of the master bus in the editor)
git-svn-id: svn://localhost/ardour2/branches/3.0@12953 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-27 22:57:06 +00:00
Carl Hetherington 85c2fd2b69 Add a menu option and key press (F) in port matrices to flip the selected row and columns in the matrix.
git-svn-id: svn://localhost/ardour2/branches/3.0@12804 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-20 22:01:22 +00:00
Carl Hetherington 34cd0f8419 Fix crash on close.
git-svn-id: svn://localhost/ardour2/branches/3.0@12719 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-14 09:48:49 +00:00
Carl Hetherington fa1e12b682 Slightly hacky improvement to embolden the labels of
connection matrix tabs when they have connections.


git-svn-id: svn://localhost/ardour2/branches/3.0@12371 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-21 21:50:29 +00:00
Carl Hetherington 10d0b1cf7a Fix assertion failure on some right-clicks.
git-svn-id: svn://localhost/ardour2/branches/3.0@12360 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-21 15:18:55 +00:00
Carl Hetherington 57bd915d66 Rename can_add_channel slightly and add mysteriously-missing calls to it so that you don't get offered the chance to add ports where none can be added.
git-svn-id: svn://localhost/ardour2/branches/3.0@12349 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-20 21:56:33 +00:00
Carl Hetherington 78237f3ac3 Display hardware IO individually in the port matrices unless we are in _show_only_bundles mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@12348 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-20 21:56:28 +00:00
Paul Davis 4235e9a1a2 a variety of mostly unused parameter errors from OS X Lion's compiler
git-svn-id: svn://localhost/ardour2/branches/3.0@12148 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-02 20:29:46 +00:00
Paul Davis ec1ef5d6b5 remove the apparently unnecessary "ui_bind()" macro from entire source base
git-svn-id: svn://localhost/ardour2/branches/3.0@12088 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 12:58:19 +00:00
Carl Hetherington 5700d10890 Check that adding a port to an IO is ok with the processors
in its route, and raise an error if not (part of #4535).


git-svn-id: svn://localhost/ardour2/branches/3.0@10938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-07 17:50:56 +00:00
Carl Hetherington 4cab367b31 Re-allow adding ports to empty bundles (#4408), and fix disassociation (disconnection) menu options as well.
git-svn-id: svn://localhost/ardour2/branches/3.0@10388 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-02 00:10:27 +00:00
Carl Hetherington cca8b8cda0 Fix out-of-whack notebook tabs wrt their contents in certain port matrices, broken by my recent tinkering (#4422).
git-svn-id: svn://localhost/ardour2/branches/3.0@10384 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-01 21:17:05 +00:00
Carl Hetherington b077f64f62 Reverse the order of vertical tabs in the port matrix
when they are on the right hand side, for reasons
explained in the comment.


git-svn-id: svn://localhost/ardour2/branches/3.0@10366 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-31 22:44:07 +00:00