Commit Graph

195 Commits

Author SHA1 Message Date
Robin Gareus b2d4280e0f
Add support for Region Fx Automation 2024-04-23 21:56:22 +02:00
Paul Davis 4647dd6b41 fix crash when freezing a track with > 1 region (#9539)
deleting regionviews changed the region selection, but the regionview
ptr had not been removed from the RegionViewList. The selection change signal
caused an iteration over the list, and manipulated the deleted regionview.
2023-11-20 19:13:22 -07:00
Robin Gareus 1f4490fff9
Allow to select region-gain points via rubber-band drag 2023-07-02 20:47:41 +02:00
Paul Davis 78037a532c when displaying region selecting, compare regions not regionviews
This worked before because nothing happened to AutomationRegionViews
when an AudioRegionView or MIDIRegionView was selected, and so
testing based on the regionview worked (the potential RV could
be the actual RV).

But when displaying region selection (in any way) on other TimeAxisViews,
the correct test is whether the RegionView shows the same region
as the selected region(view).
2023-06-28 13:44:59 -06:00
Paul Davis ed48758fb6 NO-OP: add comment 2023-06-28 13:44:59 -06:00
Paul Davis b3de53eb95 when a playlist is relayered, relayer ghost regions too 2023-06-26 14:18:18 -06:00
Robin Gareus 464df06419
Fix signal emission order ambiguity (record regionview)
A rec-region is added to the streamview just like any other region
(::add_region_view_internal). This subscribes to region->DropReferences.

When the DropReferences is handled first by StreamView::remove_region_view
the corresponding RegionView is destroyed.

This can happen even while recording is still active, eg. when locating
(which stops the current recording).
MidiStreamView::setup_rec_box() is called and crashes in
`dynamic_cast<MidiRegionView*> (rec_regions.back().second);`
due to a use after free.

Strictly speaking this is a logic error in how ::setup_rec_box()
determines if to add or remove the rec-box. But due to the
asynchronous nature of signal emission and transport-state changes
the best solution is to destroy the rec-region at the same
when the RegionView is destroyed.

To reproduce:
 * create a session with a MIDI track
 * disconnect the input (empty MIDI regions are removed)
 * Preferences > Transport > *enable* latched-record-enable
 * use the Dummy backend's MIDI generator
 * connect Hardware > MIDI > MMC -> Ardour misc > MMC in
   OR use JACK-transport to locate while recording.
2023-06-04 21:42:02 +02:00
Robin Gareus 1feb9b5e89
Streamview: NO-OP, consolidate code 2023-06-04 20:21:41 +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
itmuckel 63f94d2946 Remove unused includes 2022-08-19 09:27:19 -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
Paul Davis 64c8607ffd midi streamview: fix crash when switching playlists
We need to delete all existing region views before we redisplay the track. This
was removed as part of an "experimental performance optimization" in 4f7a4cd233
but playlist switching is a rare and non-performance limited operation
2022-06-18 08:28:31 -06:00
Paul Davis d586956636 NOOP: some minor whitespace fixes 2022-04-05 20:52:09 -06:00
Paul Davis ae8c043fe1 regionviews: use integer counter instead of boolean to control redisplay of contents 2022-04-05 20:52:09 -06:00
Hector Martin a33261df3d
Allow track views to be more than 1000 pixels tall
People have 4K displays these days; having a single maximized track is
not unusual.
2021-09-07 04:32:22 +02:00
Paul Davis b6f290add2 timeline type changes for new ripple code and post-conflict-resolution fixups 2021-08-13 12:51:36 -06:00
Paul Davis 18d64f0402 change all Region::nt_*() methods to names without the nt_ prefix (GUI version) 2021-08-13 12:51:30 -06:00
Paul Davis 04e8dbb342 another day of slow timeline type conversion 2021-08-13 12:51:29 -06:00
Paul Davis 12b536d8f2 add API to fetch all regionviews after a given position 2021-08-13 12:51:28 -06:00
Robin Gareus d42b09f1d3
Remove cruft, there are no more diskstreams 2021-01-29 03:23:57 +01:00
Paul Davis 05018164df fix computation of recording rect/layer when recording in stacked view
Code was using Region::start() which is an offset into the source, but should use
Region::position() which is the position on the timeline
2020-10-02 12:13:53 -06:00
Paul Davis a4d7b45fe0 remove destructive/tape mode tracks 2020-03-17 16:31:49 -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
Paul Davis 81dbb977c5 fixups for rebase of show-region-name option 2019-05-29 17:37:48 -06:00
Paul Davis 098ff7a07e remove debug output 2019-05-29 15:24:40 -06:00
Paul Davis 8463fb728f add option to show/hide region names 2019-05-29 15:24:40 -06:00
Robin Gareus a0b032efe2
Revert more "frame/sample" replacements
- Coverage concerns rectangles (frames, not sample)
- frame-handles are rectangles
- layout container boxes are frames
- inline display boxes are display_frame
2019-04-08 22:42:47 +02:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis a4a87f56e9 mega-commit to save state of first "it compilesand links" state for separated disk i/o changes.
THIS WILL NOT RUN. THIS REQUIRES MANY CHANGES
2017-09-18 11:40:52 -04:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
nick_m 0e2ed90cfc Revert incorrect 'optimisation' from 4f7a4cd233.
- fixes regression in stacked layering display.
2016-07-10 02:18:38 +10:00
Paul Davis 8125ea5909 tweak API of Selectable 2016-06-05 20:50:57 -04:00
Paul Davis 653ae4acd6 universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00
nick_m 4f7a4cd233 Crapola - this is an experimental performance hack that must be reverted. 2016-05-27 23:38:14 +10:00
Robin Gareus 22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Tim Mayberry 6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00
Tim Mayberry fc1e7dbb55 Move DPIReset and ColorsChanged signals into UIConfiguration 2015-09-16 16:55:17 -04:00
Paul Davis 11cfdd4c6d remove use of TimeRectangle 2015-02-11 21:59:38 -05:00
Ben Loftis 9e0cd98ad4 fix select-all-regions-within (it used to select everything overlapped) 2015-01-09 12:21:10 -06:00
David Robillard e705e93376 Don't select regions with an internal tool. 2015-01-07 20:04:39 -05:00
Tim Mayberry b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
David Robillard 5fef655380 Remove internal edit mode and add "content" tool. 2014-12-18 20:21:01 -05:00
David Robillard 6e912a0aa3 Fix display of MIDI notes/regions while recording.
Make record rect transparency configurable.

Factor out some copy-paste streamview code.
2014-12-17 18:41:23 -05: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
Paul Davis 91c29b0ce5 simplify removal of outline from streamview base rect 2014-11-07 12:58:56 -05:00
Paul Davis 9da7a15c60 streamview no longer outlines any part of its canvas rect (we leave that to time axis view separators)
Also remove commented "- 1.0" adjustments that were already commented
2014-11-05 19:45:23 -05:00
Robin Gareus 795451a697 Trick 17: share separator + border:
This effectively adds a line after the last track.
2014-09-04 18:08:45 +02:00
Robin Gareus cb05e3a21d dedicated TAV separator line 2014-09-04 17:01:28 +02:00
Robin Gareus 70358639de Revert "cont'd work on automation-track headers (amend ba53af1c5)"
This reverts commit beb5e3e777.
2014-09-04 16:14:01 +02:00
Robin Gareus beb5e3e777 cont'd work on automation-track headers (amend ba53af1c5)
now that the separator line is at the top,
offset region-contents y0 by 1px.
2014-09-03 20:48:20 +02:00