Commit graph

85 commits

Author SHA1 Message Date
Paul Davis
ec7d502959 cairo single pixel line offset fix, part 2
This will need careful visual inspection of the items drawn by the
affected code to make sure they are still precisely as intended
2023-07-17 20:55:13 -06:00
Robin Gareus
bedab69338
Pin Dialog: hide send polarity invert 2023-07-14 16:59:54 +02:00
Robin Gareus
a996645ef1
Update plugin-pin dialog when route or plugin name changes 2023-06-22 15:28:37 +02:00
Robin Gareus
71a83ed199
Fix heap-use-after-free when toggling manual pin-control
When toggling "Manual Config", Route::customize_plugin_insert()
or Route::reset_plugin_insert() emits processors_changed.

This destroyed the widget from which the change was initiated,
in ppw.clear(), leading to a use-after-free in
ArdourButton::on_button_release_event(_GdkEventButton*) ../libs/widgets/ardour_button.cc:995

The PluginPinDialog does not need to refill the widget list
when manual config is toggled, only the PluginPinWidget itself
needs to updated.
2023-06-22 04:50:43 +02:00
Robin Gareus
c9e13d49d4
PluginPinDialog: subscribe to processor name changes 2023-05-27 14:31:41 +02:00
Robin Gareus
35cca5d47b
Fix crash when adding audio-ports without replicating plugin(s) 2023-05-26 19:18:00 +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
Robin Gareus
6dadac73ab
Add context-menu options to disconnect plugin-pins 2023-03-20 23:14:06 +01:00
Robin Gareus
b410ed992b
Consolidate code duplication 2023-01-17 22:02:10 +01:00
Robin Gareus
0063211b4e
Indicate plugin-busses in the plugin pin dialog 2023-01-17 22:02:10 +01:00
Robin Gareus
f2016f2408
Prepare for GraphNode::feeds () and fed-by API update (1/2) 2022-05-06 14:02:34 +02:00
Robin Gareus
c8bb8a3f99
Fix Pin-management IOButton - use client-name 2022-04-14 16:35:02 +02:00
Mads Kiilerich
a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02: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
Robin Gareus
a68ddd39be
Auto-connect newly added plugin output pins 2021-07-02 19:53:00 +02:00
Robin Gareus
ca1ff5afaf
Remove cruft 2021-05-11 20:30:53 +02:00
Robin Gareus
b2c4e71a45
Subscribe to pretty-port name changes (GUI) 2021-01-18 03:18:20 +01:00
Robin Gareus
3f60d12308
Handle async removal of sidechain input
Apparently a user managed to remove a SC input and then
use the input's context-menu before the UI had caught up.
(PluginPinWidget::plugin_reconfigured happens during idle)

---
Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0  [..] PluginPinWidget::sc_input_press(_GdkEventButton*, boost::weak_ptr<ARDOUR::Port>) + 1140
2020-12-29 16:08:46 +01:00
Robin Gareus
94af225eaf
Fix window parent when using different workspaces
This affects only windows opened from the mixer window,
in case the mixer is detached and on a different workspace (desktop).

Window::init (and Dialog::init) set transient parent early on,
and it defaults to the main window (with toolbar). It needs to be
unset before presenting the window, in order to show the window
on the same workspace as the eventual transient parent.

This follows 6dc9134 and f3fbf58.
2020-11-18 16:26:36 +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
0805b6b925
Consolidate two more engine-checks 2018-11-28 15:17:57 +01:00
Len Ovens
0140b24248 Change get_routes to get_routelist where appropriate. 2018-11-07 17:00:16 -08:00
Robin Gareus
7d8b93add1 Consolidate PinDialog Session/recording checks
- _session cannot be NULL while the dialog is visible.
  This removes extra `if (_session)` tests.
- Operations now no longer fail silently, but show error messages.
2018-10-29 21:50:08 +01:00
Johannes Mueller
6c19a776f4 Set session of PluginPinWidget created after ::set_session()
PluginPinWidgets initially receive their Session pointer by
PluginPinDialog::set_session(). When a RouteProcessorChange occurs all
PluginPinWidgets are recreated. Those newly created instances need a pointer to
the session.
2018-10-29 18:31:15 +01:00
Robin Gareus
1ea1312c11 Sort Sidechain port list by mixer-order instead of alphabetically 2018-10-06 21:30:24 +02:00
Robin Gareus
ae0dcdc0c5 Fix various tooltip markup (ampersand) entity-escape:
* track/port names
* plugin-names
* MIDI patch-names
2017-09-14 19:23:37 +02:00
Robin Gareus
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus
7bb48aaa3f Remove cruft, steps cannot be 0. 2017-07-06 16:39:28 +02:00
Robin Gareus
c3c4efaa09 Use mnemonic-save API for menu-element texts 2017-06-29 00:22:42 +02:00
Robin Gareus
55df5b39bc Prepare removal of redundant get_user/set_user API. 2017-06-21 18:13:41 +02:00
Robin Gareus
1e2bdeb014 Limit max height of PinDialog -- fixes #7177 2016-12-20 12:34:40 +01:00
Robin Gareus
b302f70265 Skip pin-management for MB channelstrip plugins 2016-09-15 15:32:45 +02:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus
e0846c6aee ...use shared backend function instead 2016-05-19 01:46:49 +02:00
Robin Gareus
cc0abf4ef5 add route-ui pin-manager 2016-05-10 20:54:11 +02:00
Robin Gareus
4343191c45 turn Pin GUI into Widget. 2016-05-10 20:54:11 +02:00
Robin Gareus
1535cffbb0 Sidechain is one word 2016-05-03 14:42:39 +02:00
Robin Gareus
b3e12d6566 pin connection GUI for variable I/O plugins 2016-04-27 23:34:55 +02:00
Robin Gareus
9cebc9f8de Pin Management UI tweaks for AU. 2016-04-22 19:35:58 +02:00
Robin Gareus
836320efb5 disable sidechain & manual cfg for MB & AU for now 2016-04-20 22:36:18 +02:00
Robin Gareus
7999c0363f show no/inplace info in Pin Dialog (debug builds only)
.. also only show latency (relevant for thru) in debug-builds.
2016-04-19 19:03:16 +02:00
Robin Gareus
dd750722c5 more sidechain send GUI details:
* don't list exising normal sends (separate mono connections)
* tooltip inidicate autoremoval
2016-04-18 01:01:49 +02:00
Robin Gareus
d3acba6be4 fix initial panner control for new Sends 2016-04-18 00:52:24 +02:00
Robin Gareus
78c915f5eb Pin Dialog: cache UI thread information
fixes crash when redraw happens before idle update.
2016-04-17 22:21:26 +02:00
Robin Gareus
ccbf56827d pretty send and sidechain names 2016-04-17 21:50:26 +02:00
Robin Gareus
8fc19d6c67 use temporary sends for sidechain inputs 2016-04-17 14:10:13 +02:00
Robin Gareus
514765631b in case sidechain is fed by a Send, show the send's gain control
this is mainly about investigating what's involved with automatically
adding sends rather than connect track outputs...
2016-04-17 01:39:59 +02:00
Robin Gareus
30633cd2e7 NO-OP whitespace 2016-04-17 00:09:11 +02:00