Commit graph

60 commits

Author SHA1 Message Date
Robin Gareus
19fc6e831b
Fix missing calls to SessionHandlePtr::session_going_away()
Explicit calls to set_session(0) will disconnect the
callback to session_going_away(). So don't do that.
2024-11-10 23:27:36 +01:00
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
Robin Gareus
8a9a9695aa
Fix crash when transport master widget is visible at session close
Previously that could cause a heap-use-after-free.
A reliable way to trigger it was to show the audio connection
dialog and connect a track's output to LTC master, then quit.
2024-09-10 19:21:48 +02:00
Robin Gareus
d5bae02e33
Set Transport Master sensitivity when loading session or changing masters
TransportMastersWidget::rebuild made all masters sensitive
even when external sync is active.
2024-07-25 17:08:05 +02:00
Robin Gareus
caae3501ec
TransportMasterWidget may not have a session
Other parts in this dialog already test for session == nullptr.
This can happen in the Preferences, when switching a timecode
master w/o a session (not possible in Ardour, but some derivative
project).
2024-05-13 23:11:43 +02:00
Robin Gareus
87181710b2
Drop UI shared_ptr references to Transport Masters
This allows ARDOUR::cleanup to unregister ports before
destroying the Audio Engine. This fixes a crash at exist
with JACK since 0786be8.
2023-12-05 04:37:39 +01: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
86d9bcf525 Remove direct use of audio-engine rate (2/2)
This is in preparation for sample-rate independence.
2023-01-22 20:07:40 +01:00
Robin Gareus
c44b40afd7
Indicate UTF8 literals - fixes glyph rendering with MSVC (2/2) 2023-01-16 21:41:22 +01:00
Paul Davis
7c5d324136 remove transport master active controls widgets 2022-09-13 16:47:21 -06:00
Paul Davis
9ea1e5bdee move color utility functions from ARDOUR_UI_UTILS to Gtkmm2ext namespace (GUI) 2022-08-10 21:11:52 -06:00
Mads Kiilerich
d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Paul Davis
2a08e4bdaa continued work on timeline types conversion. in theory, just editor_ops.cc remains 2021-08-13 12:51:29 -06:00
Robin Gareus
b2c4e71a45
Subscribe to pretty-port name changes (GUI) 2021-01-18 03:18:20 +01:00
Robin Gareus
10ea21a35f
Fix adding transport-master
Resolve ambiguity between Dialog::add_button() and add_button member,
also use clicked signal for ArdourButton.

signal_button_press_event() only works with
ArdourButton::set_fallthrough_to_parent
2020-11-01 23:28:30 +01:00
Robin Gareus
f2cf60900b
TMM: Fix BPM display format #8118 2020-05-16 23:15:06 +02:00
Paul Davis
a9fff59229 TMM: do not allow changing transport master while slaved (GUI edition) 2020-05-15 21:06:40 -06:00
Robin Gareus
d6b0c77bb1
TMM: display timecode using session FPS 2020-05-15 01:47:05 +02:00
Robin Gareus
6622c55912
TMM: fix last message + age display 2020-05-13 23:57:40 +02:00
Robin Gareus
5120b650c5
TMM dialog: fix rendering performance
This removes expensive markup parsing and directly sets
timecode and delta-time as plain text. The Labels use the
main clock's color schema, and dedicated ArdourMono font.
2020-05-12 21:10:28 +02:00
Ben Loftis
20c09ccfc3 Transport Masters dialog: don't use an uninitialized char array. 2020-05-11 18:37:12 -05:00
Ben Loftis
26dbd30ae6 Transport Masters dialog: various layout changes to improve legibility
Use Fonts and Color to help discriminate columns:
Values that come from the TC Master are now in black boxen (ToDo: use gtk theming)

Reduce the number of columns, to improve legibility:
Consolidate the Slave's current TC chase value and Delta (offset from Ardour current TC)
Consolidate the last message received, and how recently it was received
Remove Collect checkboxes (just disconnect the port if you don't want it to run)
2020-05-11 15:37:40 -05:00
Ben Loftis
7581ec5ac5 Transport Masters dialog: fix typo 2020-05-11 15:37:36 -05:00
Robin Gareus
44d87f2cd7
TMM GUI: display delta time from all slaves 2020-05-11 18:37:16 +02:00
Paul Davis
18228edd54 use ardour button rather than gtk::button in transport master widget 2020-04-24 15:54:29 -06:00
Paul Davis
b1d5e8611f carefully position floating text entry when editing transport master names 2020-04-24 15:54:15 -06:00
Paul Davis
75b9689f0c only update port lists when a TransportMastersWidget is actually mapped
The overhead of rebuilding for every port registration and unregistration was absurd
2020-04-24 12:00:02 -06:00
Paul Davis
afcc95167e fix copy-paste error that prevent transport master request mask from being set correctly 2020-04-24 07:44:41 -06:00
Paul Davis
3bbad66a99 control over transport-masters-just-roll-when-sync-is-lost 2020-03-23 19:08:57 -06:00
Paul Davis
e04f0a4c2c tweaks to display in TransportMastersWidget to reduce width jumping 2020-03-23 18:34:31 -06:00
Paul Davis
1c551e432c fix port/connection combo/dropdown for TransportMastersWidget 2020-03-22 22:45:28 -06:00
Paul Davis
91a87fbc5b somewhat convoluted reworking to get TransportMastersWidget's per-row port combos to update for hotplug
This approach should extended to other things, notably control surfaces
2020-03-13 22:16:37 -06:00
Paul Davis
45f5513b66 remove debug output 2020-03-10 11:56:10 -06:00
Paul Davis
f827294b0b small improvements to Transport Masters dialog (in preferences and elsewhere) 2020-03-10 11:40:03 -06:00
Paul Davis
37d9ec34c8 add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes 2019-09-17 16:54:10 -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
Robin Gareus
3bc9281c31
Fix some Gtk::Menu related memory leaks
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.

This adds explicit delete calls for menus where there is a
member variable reference to the Menu.
2019-03-07 23:50:32 +01:00
Paul Davis
896091d256 do not attempt to update transport master rows if audioengine is not running 2019-02-06 13:54:05 -07:00
Paul Davis
59b709be2b remove debug output 2019-01-25 11:09:31 -07:00
Paul Davis
89d54b8790 minor refactorization of how the transport master widget is rebuilt 2019-01-25 09:23:08 -07:00
Paul Davis
8b1c8bb511 use C++, dammit 2018-10-07 12:57:56 -04:00
Paul Davis
9134323f4a show message if adding transport master doesn't work 2018-10-07 12:43:14 -04:00
Paul Davis
3c0f749370 make name entry activation close dialog (potentially) 2018-10-07 12:36:04 -04:00
Paul Davis
44cae0a624 delete transport masters from an idle callback 2018-10-07 12:29:52 -04:00
Paul Davis
eab98962bc add dialog for adding new transport masters 2018-10-07 11:10:45 -04:00
Paul Davis
e4a914e26e make remove work for transport masters (bug fix, really) 2018-10-05 14:29:15 -04:00
Paul Davis
e2be5b7b02 remove debug output 2018-10-05 14:18:43 -04:00
Paul Davis
e28f96ae73 tweak up display of "time since last msg" for transport masters 2018-10-05 14:15:02 -04:00
Paul Davis
58e9bb0a14 move away from "sync source" concepts 2018-10-05 14:15:02 -04:00
Paul Davis
1b71e4db2c laying the groundwork for adding/removing transport masters 2018-10-05 14:15:02 -04:00