Commit Graph

56 Commits

Author SHA1 Message Date
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
Paul Davis 4840543272 show last received and when for timecode timestamps in transport masters widget 2018-09-27 11:31:13 -04:00
Paul Davis f8264ed1fb add name editing for transport masters 2018-09-27 11:31:13 -04:00
Paul Davis 5685865eae use new TransportMaster::speed_and_position() API 2018-09-27 11:31:13 -04:00
Paul Davis 4bdf0dad20 rearrange parts of transport masters dialog, and fix tooltip issue 2018-09-24 15:46:11 -04:00