Commit Graph

44 Commits

Author SHA1 Message Date
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 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
Ben Loftis 483047635c Rec page: implement Undo actions and shortcuts
* undo is not (currently) a Global action, it's an Editor action
* ... but we want the ability to undo a recording

One option would be to chagne Undo to a Global action, which would have a
 sizable impact on code and existing shortcuts.

Instead I'm choosing to implement a Rec-page-specific Undo action & shortcut

It's conceivable that someday we would want the Recorder page to ONLY undo
 record operations, and the Mixer page to ONLY undo mixer operations, or
 something like that.  This lays the foundation for that.
2022-12-16 13:18:37 -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
Ben Loftis a92af7768d modifiers: implement is_momentary_push_event for momentary buttons (gtk2 part) 2022-06-17 11:07:58 -05:00
Robin Gareus 43f58f88a6
Allow input meters without session when backend is connected
This also fixes a race with ARDOUR::AudioEngine::start() emitting
a Running() signal being emitted without a valid session.
2022-05-31 19:08:19 +02:00
Robin Gareus 5c18e64616
Fix I/O Plugin meter without session - amend c10c3ed6
The RecoderUI can show device input meters as long as a backend is
running regardless of a session. I/O Plugins are however
part of a specific session.
2022-05-18 21:07:30 +02:00
Robin Gareus c10c3ed64f
Show I/O Plugins on Recorder Page 2022-05-17 02:26:28 +02:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich 09c6e68ae8
gtkmm: use append() instead of deprecated Gtk::ComboBoxText::append_text() 2022-04-08 21:10:56 +02:00
Mads Kiilerich a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02:00
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
luz paz 3d395585c1
Fix various typos
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sord,sur,te,trough,ue`  
Follow-up to 364f2f078
2022-04-08 19:51:02 +02:00
Paul Davis ca22ba77e1 Constification: make Stateful::get_state() const, with all other required const-ness added (GUI) 2022-04-06 21:56:59 -06:00
Ben Loftis 9ad82787a1 Instrument Selector: use a 3-way Disposition to disambiguate the uses of this widget 2022-02-04 21:33:12 -06:00
Ben Loftis 663a843484 Add explanatory text to '+' symbol on mixer and recorder pages 2022-01-30 13:44:41 -06:00
Paul Davis 754230921d there is no Properties::position any more (GUI)
Position is a part of a length property (a duple specifying
"duration AT position", and there is no distinct property
for just the position itself
2021-09-25 16:49:51 -06:00
Paul Davis a71ba473f7 fix up post-rebase issues after rebase on master 2021-08-13 12:51:34 -06:00
Ben Loftis f67d39fa66 RecorderUI: Do not show input meters for control-only ports Faderport, Mackie, etc 2021-08-04 09:14:10 -05:00
Robin Gareus 33faf7ca56
Fix tooltip for new-playlist button 2021-07-13 17:02:14 +02:00
Ben Loftis 50c555f1a1
Default_Play_Speed: simple varispeed GUI 2021-07-03 19:06:02 +02:00
Robin Gareus 83b9ab1bee
Temporarily revert ongoing varispeed development
This reverts bf88f3fe64
until 35813db0f4

in order to move development into a branch, until after the
upcoming 6.8 release
2021-06-26 18:58:24 +02:00
Ben Loftis 5b8835483e Default_Play_Speed: simple varispeed GUI 2021-06-25 11:51:34 -05:00
Ben Loftis 7cc92d8f27 Playlist UI tweaks: add global playlist buttons to Rec page (tentative, for testing) 2021-06-08 08:33:48 -05:00
Robin Gareus 283cade057
Update GUI Region[s]PropertyChanged signal handlers (2/3) 2021-05-07 23:29:25 +02:00
Robin Gareus 6a82aa392c
Fix deadlock when duplicating regions w/ripple
This is an initial work-around for signal emission with
Playlist:region_lock held:

Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create(). The newly created region does NOT have
property-changes suspended, and the RegionFactory can change
region-properties which results in signal-emission.

This in turn can lead to a call Editor::session_gui_extents()
-> ARDOUR::Playlist::get_extent() -> Playlist::RegionReadLock

which deadlocks: https://pastebin.com/84rSbsA3

Eventually we need a mechanism to create regions with
->suspend_property_changes() and add it to the playlist's
thawlist (pass a thawlist to the region-factory).
2021-04-30 03:40:32 +02:00
Robin Gareus dd060b04dc
RecorderUI: Fix monitoring when hot-plugging devices
When there are no input ports at the time the engine starts
running, MonitorInputChanged signal was not subscribed to.
This breaks AFL solo. This happens e.g. when re-starting the
engine with ALSA slave devices.
2021-04-18 19:03:35 +02:00
Robin Gareus 1bffdfc334
Open add-route dialog on double-click or context-click 2021-03-28 20:39:34 +02:00
Robin Gareus cf7aad8a8a
Fix typo in previous commit 2021-03-26 15:04:21 +01:00
Robin Gareus ada1b9bce5
Show shaded plus icon on scroller-base background (rec, mixer) 2021-03-26 14:36:50 +01:00
Robin Gareus 04a40140dc
Remove "add route" button from recorder and mixer
This GTK button style is out of place in both contexts.
Furthermore it is inconsistent to not have the same button
in the editor (there is a dropzone).
2021-03-26 14:35:17 +01:00
Robin Gareus cb6ad45e9d
Fix crash when CatchDeletion signal from self_delete arrives late
This is rather an unusual edge-case, seen on macOS when the UI
never continues past the first idle stage.
2021-03-08 17:15:03 +01:00
Robin Gareus a7ce58b995
Fix rec-ruler time display
The calculation to round the distance to seconds has to be performed
using floating point maths, not just the result being cast to double.
The time-granularity must not be zero.
2021-02-25 17:59:53 +01:00
John Emmas 53b90dc0dc Add a cast when using 'ceil' (to keep MSVC happy) 2021-02-25 16:46:19 +00:00
Robin Gareus 07d04be98d
Potential fix for MSVC builds
The set is defined with custom compare fn:
  std::set<T, cmp> x;
but later iterators used a default constructor:
  std::set<T>::iterator i = x.begin();
2021-02-25 15:55:10 +01:00
Robin Gareus 7f9dae0078
RecorderUI: add a "+" add route button
This provides consistent look and feel with the mixer-window.
2021-02-23 23:07:22 +01:00
Robin Gareus c2e4198c0d
RecorderUI: add option to disable waveforms 2021-02-23 16:25:01 +01:00
Robin Gareus 16cbec311a
RecorderUI: add some key-bindings 2021-02-23 16:24:58 +01:00
Robin Gareus ece37d9ca0
RecorderUI: Implement track renaming 2021-02-23 16:24:55 +01:00
Robin Gareus 4412b8714b
RecorderUI: Capture info and transport ctrls 2021-02-23 16:24:30 +01:00
Robin Gareus 15361bca55
RecorderUI: Add input port monitoring 2021-02-23 16:24:27 +01:00
Robin Gareus 582c99a156
RecorderUI: initial implementation 2021-02-23 16:24:23 +01:00
Robin Gareus f10d380d9a
RecorderUI: Tabbable Window Skeleton 2021-02-22 01:00:07 +01:00